<!DOCTYPE html>

<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">

<title>module ActiveRecord::ConnectionAdapters::SchemaStatements - Rails Framework Documentation</title>

<link type="text/css" media="screen" href="../../rdoc.css" rel="stylesheet">

<script type="text/javascript">
  var rdoc_rel_prefix = "../../";
</script>

<script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../../js/navigation.js"></script>
<script type="text/javascript" charset="utf-8" src="../../js/search_index.js"></script>
<script type="text/javascript" charset="utf-8" src="../../js/search.js"></script>
<script type="text/javascript" charset="utf-8" src="../../js/searcher.js"></script>
<script type="text/javascript" charset="utf-8" src="../../js/darkfish.js"></script>


<body id="top" class="module">
<nav id="metadata">
  <nav id="home-section" class="section">
  <h3 class="section-header">
    <a href="../../index.html">Home</a>
    <a href="../../table_of_contents.html#classes">Classes</a>
    <a href="../../table_of_contents.html#methods">Methods</a>
  </h3>
</nav>


  <nav id="search-section" class="section project-section" class="initially-hidden">
  <form action="#" method="get" accept-charset="utf-8">
    <h3 class="section-header">
      <input type="text" name="search" placeholder="Search" id="search-field"
             title="Type to search, Up and Down to navigate, Enter to load">
    </h3>
  </form>

  <ul id="search-results" class="initially-hidden"></ul>
</nav>


  <div id="file-metadata">
    <nav id="file-list-section" class="section">
  <h3 class="section-header">Defined In</h3>
  <ul>
    <li>/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.7/lib/active_record/connection_adapters/abstract/schema_statements.rb
  </ul>
</nav>

    
  </div>

  <div id="class-metadata">
    
    
    
    <!-- Method Quickref -->
<nav id="method-list-section" class="section">
  <h3 class="section-header">Methods</h3>

  <ul class="link-list">
    
    <li><a href="#method-i-add_column">#add_column</a>
    
    <li><a href="#method-i-add_index">#add_index</a>
    
    <li><a href="#method-i-add_index_options">#add_index_options</a>
    
    <li><a href="#method-i-add_index_sort_order">#add_index_sort_order</a>
    
    <li><a href="#method-i-add_timestamps">#add_timestamps</a>
    
    <li><a href="#method-i-assume_migrated_upto_version">#assume_migrated_upto_version</a>
    
    <li><a href="#method-i-change_column">#change_column</a>
    
    <li><a href="#method-i-change_column_default">#change_column_default</a>
    
    <li><a href="#method-i-change_table">#change_table</a>
    
    <li><a href="#method-i-column_exists-3F">#column_exists?</a>
    
    <li><a href="#method-i-columns">#columns</a>
    
    <li><a href="#method-i-columns_for_remove">#columns_for_remove</a>
    
    <li><a href="#method-i-create_table">#create_table</a>
    
    <li><a href="#method-i-distinct">#distinct</a>
    
    <li><a href="#method-i-drop_table">#drop_table</a>
    
    <li><a href="#method-i-index_exists-3F">#index_exists?</a>
    
    <li><a href="#method-i-index_name_exists-3F">#index_name_exists?</a>
    
    <li><a href="#method-i-index_name_for_remove">#index_name_for_remove</a>
    
    <li><a href="#method-i-initialize_schema_migrations_table">#initialize_schema_migrations_table</a>
    
    <li><a href="#method-i-native_database_types">#native_database_types</a>
    
    <li><a href="#method-i-options_include_default-3F">#options_include_default?</a>
    
    <li><a href="#method-i-quoted_columns_for_index">#quoted_columns_for_index</a>
    
    <li><a href="#method-i-remove_column">#remove_column</a>
    
    <li><a href="#method-i-remove_columns">#remove_columns</a>
    
    <li><a href="#method-i-remove_index">#remove_index</a>
    
    <li><a href="#method-i-remove_timestamps">#remove_timestamps</a>
    
    <li><a href="#method-i-rename_column">#rename_column</a>
    
    <li><a href="#method-i-rename_index">#rename_index</a>
    
    <li><a href="#method-i-rename_table">#rename_table</a>
    
    <li><a href="#method-i-structure_dump">#structure_dump</a>
    
    <li><a href="#method-i-table_alias_for">#table_alias_for</a>
    
    <li><a href="#method-i-table_exists-3F">#table_exists?</a>
    
  </ul>
</nav>

  </div>

  <div id="project-metadata">
    <nav id="fileindex-section" class="section project-section">
  <h3 class="section-header">Pages</h3>

  <ul>
  
    <li class="file"><a href="../..//usr/local/lib/ruby/gems/1_9_1/gems/actionmailer-3_2_7/MIT-LICENSE.html">MIT-LICENSE</a>
  
    <li class="file"><a href="../..//usr/local/lib/ruby/gems/1_9_1/gems/actionmailer-3_2_7/README_rdoc.html">README</a>
  
    <li class="file"><a href="../..//usr/local/lib/ruby/gems/1_9_1/gems/actionpack-3_2_7/MIT-LICENSE.html">MIT-LICENSE</a>
  
    <li class="file"><a href="../..//usr/local/lib/ruby/gems/1_9_1/gems/actionpack-3_2_7/README_rdoc.html">README</a>
  
    <li class="file"><a href="../..//usr/local/lib/ruby/gems/1_9_1/gems/activemodel-3_2_7/MIT-LICENSE.html">MIT-LICENSE</a>
  
    <li class="file"><a href="../..//usr/local/lib/ruby/gems/1_9_1/gems/activemodel-3_2_7/README_rdoc.html">README</a>
  
    <li class="file"><a href="../..//usr/local/lib/ruby/gems/1_9_1/gems/activerecord-3_2_7/README_rdoc.html">README</a>
  
    <li class="file"><a href="../..//usr/local/lib/ruby/gems/1_9_1/gems/activeresource-3_2_7/README_rdoc.html">README</a>
  
    <li class="file"><a href="../..//usr/local/lib/ruby/gems/1_9_1/gems/activesupport-3_2_7/README_rdoc.html">README</a>
  
    <li class="file"><a href="../..//usr/local/lib/ruby/gems/1_9_1/gems/railties-3_2_7/README_rdoc.html">README</a>
  
    <li class="file"><a href="../../README_rdoc.html">README</a>
  
  </ul>
</nav>

    <nav id="classindex-section" class="section project-section">
  <h3 class="section-header">Class and Module Index</h3>

  <ul class="link-list">
  
    <li><a href="../../ActiveRecord.html">ActiveRecord</a>
  
    <li><a href="../../ActiveRecord/ActiveRecordError.html">ActiveRecord::ActiveRecordError</a>
  
    <li><a href="../../ActiveRecord/AdapterNotFound.html">ActiveRecord::AdapterNotFound</a>
  
    <li><a href="../../ActiveRecord/AdapterNotSpecified.html">ActiveRecord::AdapterNotSpecified</a>
  
    <li><a href="../../ActiveRecord/Aggregations.html">ActiveRecord::Aggregations</a>
  
    <li><a href="../../ActiveRecord/Aggregations/ClassMethods.html">ActiveRecord::Aggregations::ClassMethods</a>
  
    <li><a href="../../ActiveRecord/AssociationTypeMismatch.html">ActiveRecord::AssociationTypeMismatch</a>
  
    <li><a href="../../ActiveRecord/Associations.html">ActiveRecord::Associations</a>
  
    <li><a href="../../ActiveRecord/Associations/ClassMethods.html">ActiveRecord::Associations::ClassMethods</a>
  
    <li><a href="../../ActiveRecord/AttributeAssignment.html">ActiveRecord::AttributeAssignment</a>
  
    <li><a href="../../ActiveRecord/AttributeAssignment/ClassMethods.html">ActiveRecord::AttributeAssignment::ClassMethods</a>
  
    <li><a href="../../ActiveRecord/AttributeAssignmentError.html">ActiveRecord::AttributeAssignmentError</a>
  
    <li><a href="../../ActiveRecord/AttributeMethods.html">ActiveRecord::AttributeMethods</a>
  
    <li><a href="../../ActiveRecord/AttributeMethods/BeforeTypeCast.html">ActiveRecord::AttributeMethods::BeforeTypeCast</a>
  
    <li><a href="../../ActiveRecord/AttributeMethods/ClassMethods.html">ActiveRecord::AttributeMethods::ClassMethods</a>
  
    <li><a href="../../ActiveRecord/AttributeMethods/DeprecatedUnderscoreRead.html">ActiveRecord::AttributeMethods::DeprecatedUnderscoreRead</a>
  
    <li><a href="../../ActiveRecord/AttributeMethods/DeprecatedUnderscoreRead/ClassMethods.html">ActiveRecord::AttributeMethods::DeprecatedUnderscoreRead::ClassMethods</a>
  
    <li><a href="../../ActiveRecord/AttributeMethods/Dirty.html">ActiveRecord::AttributeMethods::Dirty</a>
  
    <li><a href="../../ActiveRecord/AttributeMethods/PrimaryKey.html">ActiveRecord::AttributeMethods::PrimaryKey</a>
  
    <li><a href="../../ActiveRecord/AttributeMethods/PrimaryKey/ClassMethods.html">ActiveRecord::AttributeMethods::PrimaryKey::ClassMethods</a>
  
    <li><a href="../../ActiveRecord/AttributeMethods/Query.html">ActiveRecord::AttributeMethods::Query</a>
  
    <li><a href="../../ActiveRecord/AttributeMethods/Read.html">ActiveRecord::AttributeMethods::Read</a>
  
    <li><a href="../../ActiveRecord/AttributeMethods/Read/ClassMethods.html">ActiveRecord::AttributeMethods::Read::ClassMethods</a>
  
    <li><a href="../../ActiveRecord/AttributeMethods/Serialization.html">ActiveRecord::AttributeMethods::Serialization</a>
  
    <li><a href="../../ActiveRecord/AttributeMethods/Serialization/Attribute.html">ActiveRecord::AttributeMethods::Serialization::Attribute</a>
  
    <li><a href="../../ActiveRecord/AttributeMethods/Serialization/ClassMethods.html">ActiveRecord::AttributeMethods::Serialization::ClassMethods</a>
  
    <li><a href="../../ActiveRecord/AttributeMethods/TimeZoneConversion.html">ActiveRecord::AttributeMethods::TimeZoneConversion</a>
  
    <li><a href="../../ActiveRecord/AttributeMethods/TimeZoneConversion/ClassMethods.html">ActiveRecord::AttributeMethods::TimeZoneConversion::ClassMethods</a>
  
    <li><a href="../../ActiveRecord/AttributeMethods/Write.html">ActiveRecord::AttributeMethods::Write</a>
  
    <li><a href="../../ActiveRecord/AttributeMethods/Write/ClassMethods.html">ActiveRecord::AttributeMethods::Write::ClassMethods</a>
  
    <li><a href="../../ActiveRecord/AutosaveAssociation.html">ActiveRecord::AutosaveAssociation</a>
  
    <li><a href="../../ActiveRecord/AutosaveAssociation/ClassMethods.html">ActiveRecord::AutosaveAssociation::ClassMethods</a>
  
    <li><a href="../../ActiveRecord/Base.html">ActiveRecord::Base</a>
  
    <li><a href="../../ActiveRecord/Batches.html">ActiveRecord::Batches</a>
  
    <li><a href="../../ActiveRecord/Calculations.html">ActiveRecord::Calculations</a>
  
    <li><a href="../../ActiveRecord/Callbacks.html">ActiveRecord::Callbacks</a>
  
    <li><a href="../../ActiveRecord/ConfigurationError.html">ActiveRecord::ConfigurationError</a>
  
    <li><a href="../../ActiveRecord/ConnectionAdapters/AbstractAdapter.html">ActiveRecord::ConnectionAdapters::AbstractAdapter</a>
  
    <li><a href="../../ActiveRecord/ConnectionAdapters/AbstractMysqlAdapter.html">ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter</a>
  
    <li><a href="../../ActiveRecord/ConnectionAdapters/ConnectionHandler.html">ActiveRecord::ConnectionAdapters::ConnectionHandler</a>
  
    <li><a href="../../ActiveRecord/ConnectionAdapters/ConnectionManagement.html">ActiveRecord::ConnectionAdapters::ConnectionManagement</a>
  
    <li><a href="../../ActiveRecord/ConnectionAdapters/ConnectionPool.html">ActiveRecord::ConnectionAdapters::ConnectionPool</a>
  
    <li><a href="../../ActiveRecord/ConnectionAdapters/DatabaseLimits.html">ActiveRecord::ConnectionAdapters::DatabaseLimits</a>
  
    <li><a href="../../ActiveRecord/ConnectionAdapters/DatabaseStatements.html">ActiveRecord::ConnectionAdapters::DatabaseStatements</a>
  
    <li><a href="../../ActiveRecord/ConnectionAdapters/Mysql2Adapter.html">ActiveRecord::ConnectionAdapters::Mysql2Adapter</a>
  
    <li><a href="../../ActiveRecord/ConnectionAdapters/MysqlAdapter.html">ActiveRecord::ConnectionAdapters::MysqlAdapter</a>
  
    <li><a href="../../ActiveRecord/ConnectionAdapters/MysqlAdapter/StatementPool.html">ActiveRecord::ConnectionAdapters::MysqlAdapter::StatementPool</a>
  
    <li><a href="../../ActiveRecord/ConnectionAdapters/PostgreSQLAdapter.html">ActiveRecord::ConnectionAdapters::PostgreSQLAdapter</a>
  
    <li><a href="../../ActiveRecord/ConnectionAdapters/PostgreSQLAdapter/StatementPool.html">ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::StatementPool</a>
  
    <li><a href="../../ActiveRecord/ConnectionAdapters/PostgreSQLAdapter/TableDefinition.html">ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::TableDefinition</a>
  
    <li><a href="../../ActiveRecord/ConnectionAdapters/PostgreSQLAdapter/Utils.html">ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::Utils</a>
  
    <li><a href="../../ActiveRecord/ConnectionAdapters/PostgreSQLColumn.html">ActiveRecord::ConnectionAdapters::PostgreSQLColumn</a>
  
    <li><a href="../../ActiveRecord/ConnectionAdapters/QueryCache.html">ActiveRecord::ConnectionAdapters::QueryCache</a>
  
    <li><a href="../../ActiveRecord/ConnectionAdapters/Quoting.html">ActiveRecord::ConnectionAdapters::Quoting</a>
  
    <li><a href="../../ActiveRecord/ConnectionAdapters/SQLiteAdapter.html">ActiveRecord::ConnectionAdapters::SQLiteAdapter</a>
  
    <li><a href="../../ActiveRecord/ConnectionAdapters/SQLiteAdapter/ExplainPrettyPrinter.html">ActiveRecord::ConnectionAdapters::SQLiteAdapter::ExplainPrettyPrinter</a>
  
    <li><a href="../../ActiveRecord/ConnectionAdapters/SQLiteAdapter/StatementPool.html">ActiveRecord::ConnectionAdapters::SQLiteAdapter::StatementPool</a>
  
    <li><a href="../../ActiveRecord/ConnectionAdapters/SQLiteAdapter/Version.html">ActiveRecord::ConnectionAdapters::SQLiteAdapter::Version</a>
  
    <li><a href="../../ActiveRecord/ConnectionAdapters/SchemaCache.html">ActiveRecord::ConnectionAdapters::SchemaCache</a>
  
    <li><a href="../../ActiveRecord/ConnectionAdapters/SchemaStatements.html">ActiveRecord::ConnectionAdapters::SchemaStatements</a>
  
    <li><a href="../../ActiveRecord/ConnectionAdapters/StatementPool.html">ActiveRecord::ConnectionAdapters::StatementPool</a>
  
    <li><a href="../../ActiveRecord/ConnectionAdapters/Table.html">ActiveRecord::ConnectionAdapters::Table</a>
  
    <li><a href="../../ActiveRecord/ConnectionAdapters/TableDefinition.html">ActiveRecord::ConnectionAdapters::TableDefinition</a>
  
    <li><a href="../../ActiveRecord/ConnectionNotEstablished.html">ActiveRecord::ConnectionNotEstablished</a>
  
    <li><a href="../../ActiveRecord/ConnectionTimeoutError.html">ActiveRecord::ConnectionTimeoutError</a>
  
    <li><a href="../../ActiveRecord/CounterCache.html">ActiveRecord::CounterCache</a>
  
    <li><a href="../../ActiveRecord/DangerousAttributeError.html">ActiveRecord::DangerousAttributeError</a>
  
    <li><a href="../../ActiveRecord/Delegation.html">ActiveRecord::Delegation</a>
  
    <li><a href="../../ActiveRecord/DynamicFinderMatch.html">ActiveRecord::DynamicFinderMatch</a>
  
    <li><a href="../../ActiveRecord/DynamicMatchers.html">ActiveRecord::DynamicMatchers</a>
  
    <li><a href="../../ActiveRecord/DynamicScopeMatch.html">ActiveRecord::DynamicScopeMatch</a>
  
    <li><a href="../../ActiveRecord/Explain.html">ActiveRecord::Explain</a>
  
    <li><a href="../../ActiveRecord/FinderMethods.html">ActiveRecord::FinderMethods</a>
  
    <li><a href="../../ActiveRecord/Fixtures.html">ActiveRecord::Fixtures</a>
  
    <li><a href="../../ActiveRecord/Fixtures/File.html">ActiveRecord::Fixtures::File</a>
  
    <li><a href="../../ActiveRecord/IdentityMap.html">ActiveRecord::IdentityMap</a>
  
    <li><a href="../../ActiveRecord/IdentityMap/Middleware.html">ActiveRecord::IdentityMap::Middleware</a>
  
    <li><a href="../../ActiveRecord/Inheritance.html">ActiveRecord::Inheritance</a>
  
    <li><a href="../../ActiveRecord/Inheritance/ClassMethods.html">ActiveRecord::Inheritance::ClassMethods</a>
  
    <li><a href="../../ActiveRecord/Integration.html">ActiveRecord::Integration</a>
  
    <li><a href="../../ActiveRecord/InvalidForeignKey.html">ActiveRecord::InvalidForeignKey</a>
  
    <li><a href="../../ActiveRecord/IrreversibleMigration.html">ActiveRecord::IrreversibleMigration</a>
  
    <li><a href="../../ActiveRecord/Locking.html">ActiveRecord::Locking</a>
  
    <li><a href="../../ActiveRecord/Locking/Optimistic.html">ActiveRecord::Locking::Optimistic</a>
  
    <li><a href="../../ActiveRecord/Locking/Optimistic/ClassMethods.html">ActiveRecord::Locking::Optimistic::ClassMethods</a>
  
    <li><a href="../../ActiveRecord/Locking/Pessimistic.html">ActiveRecord::Locking::Pessimistic</a>
  
    <li><a href="../../ActiveRecord/LogSubscriber.html">ActiveRecord::LogSubscriber</a>
  
    <li><a href="../../ActiveRecord/Migration.html">ActiveRecord::Migration</a>
  
    <li><a href="../../ActiveRecord/Migration/CommandRecorder.html">ActiveRecord::Migration::CommandRecorder</a>
  
    <li><a href="../../ActiveRecord/MigrationProxy.html">ActiveRecord::MigrationProxy</a>
  
    <li><a href="../../ActiveRecord/ModelSchema.html">ActiveRecord::ModelSchema</a>
  
    <li><a href="../../ActiveRecord/ModelSchema/ClassMethods.html">ActiveRecord::ModelSchema::ClassMethods</a>
  
    <li><a href="../../ActiveRecord/MultiparameterAssignmentErrors.html">ActiveRecord::MultiparameterAssignmentErrors</a>
  
    <li><a href="../../ActiveRecord/NestedAttributes.html">ActiveRecord::NestedAttributes</a>
  
    <li><a href="../../ActiveRecord/NestedAttributes/ClassMethods.html">ActiveRecord::NestedAttributes::ClassMethods</a>
  
    <li><a href="../../ActiveRecord/NestedAttributes/TooManyRecords.html">ActiveRecord::NestedAttributes::TooManyRecords</a>
  
    <li><a href="../../ActiveRecord/Observer.html">ActiveRecord::Observer</a>
  
    <li><a href="../../ActiveRecord/Persistence.html">ActiveRecord::Persistence</a>
  
    <li><a href="../../ActiveRecord/Persistence/ClassMethods.html">ActiveRecord::Persistence::ClassMethods</a>
  
    <li><a href="../../ActiveRecord/PreparedStatementInvalid.html">ActiveRecord::PreparedStatementInvalid</a>
  
    <li><a href="../../ActiveRecord/QueryCache.html">ActiveRecord::QueryCache</a>
  
    <li><a href="../../ActiveRecord/QueryCache/ClassMethods.html">ActiveRecord::QueryCache::ClassMethods</a>
  
    <li><a href="../../ActiveRecord/QueryMethods.html">ActiveRecord::QueryMethods</a>
  
    <li><a href="../../ActiveRecord/Querying.html">ActiveRecord::Querying</a>
  
    <li><a href="../../ActiveRecord/Railtie.html">ActiveRecord::Railtie</a>
  
    <li><a href="../../ActiveRecord/Railties.html">ActiveRecord::Railties</a>
  
    <li><a href="../../ActiveRecord/Railties/ControllerRuntime.html">ActiveRecord::Railties::ControllerRuntime</a>
  
    <li><a href="../../ActiveRecord/Railties/ControllerRuntime/ClassMethods.html">ActiveRecord::Railties::ControllerRuntime::ClassMethods</a>
  
    <li><a href="../../ActiveRecord/ReadOnlyRecord.html">ActiveRecord::ReadOnlyRecord</a>
  
    <li><a href="../../ActiveRecord/ReadonlyAttributes.html">ActiveRecord::ReadonlyAttributes</a>
  
    <li><a href="../../ActiveRecord/ReadonlyAttributes/ClassMethods.html">ActiveRecord::ReadonlyAttributes::ClassMethods</a>
  
    <li><a href="../../ActiveRecord/RecordInvalid.html">ActiveRecord::RecordInvalid</a>
  
    <li><a href="../../ActiveRecord/RecordNotFound.html">ActiveRecord::RecordNotFound</a>
  
    <li><a href="../../ActiveRecord/RecordNotSaved.html">ActiveRecord::RecordNotSaved</a>
  
    <li><a href="../../ActiveRecord/RecordNotUnique.html">ActiveRecord::RecordNotUnique</a>
  
    <li><a href="../../ActiveRecord/Reflection.html">ActiveRecord::Reflection</a>
  
    <li><a href="../../ActiveRecord/Reflection/ClassMethods.html">ActiveRecord::Reflection::ClassMethods</a>
  
    <li><a href="../../ActiveRecord/Reflection/MacroReflection.html">ActiveRecord::Reflection::MacroReflection</a>
  
    <li><a href="../../ActiveRecord/Relation.html">ActiveRecord::Relation</a>
  
    <li><a href="../../ActiveRecord/Result.html">ActiveRecord::Result</a>
  
    <li><a href="../../ActiveRecord/Rollback.html">ActiveRecord::Rollback</a>
  
    <li><a href="../../ActiveRecord/Sanitization.html">ActiveRecord::Sanitization</a>
  
    <li><a href="../../ActiveRecord/Sanitization/ClassMethods.html">ActiveRecord::Sanitization::ClassMethods</a>
  
    <li><a href="../../ActiveRecord/Schema.html">ActiveRecord::Schema</a>
  
    <li><a href="../../ActiveRecord/Scoping.html">ActiveRecord::Scoping</a>
  
    <li><a href="../../ActiveRecord/Scoping/ClassMethods.html">ActiveRecord::Scoping::ClassMethods</a>
  
    <li><a href="../../ActiveRecord/Scoping/Default.html">ActiveRecord::Scoping::Default</a>
  
    <li><a href="../../ActiveRecord/Scoping/Default/ClassMethods.html">ActiveRecord::Scoping::Default::ClassMethods</a>
  
    <li><a href="../../ActiveRecord/Scoping/Named.html">ActiveRecord::Scoping::Named</a>
  
    <li><a href="../../ActiveRecord/Scoping/Named/ClassMethods.html">ActiveRecord::Scoping::Named::ClassMethods</a>
  
    <li><a href="../../ActiveRecord/Serialization.html">ActiveRecord::Serialization</a>
  
    <li><a href="../../ActiveRecord/SerializationTypeMismatch.html">ActiveRecord::SerializationTypeMismatch</a>
  
    <li><a href="../../ActiveRecord/SessionStore.html">ActiveRecord::SessionStore</a>
  
    <li><a href="../../ActiveRecord/SessionStore/Session.html">ActiveRecord::SessionStore::Session</a>
  
    <li><a href="../../ActiveRecord/SessionStore/SqlBypass.html">ActiveRecord::SessionStore::SqlBypass</a>
  
    <li><a href="../../ActiveRecord/SpawnMethods.html">ActiveRecord::SpawnMethods</a>
  
    <li><a href="../../ActiveRecord/StaleObjectError.html">ActiveRecord::StaleObjectError</a>
  
    <li><a href="../../ActiveRecord/StatementInvalid.html">ActiveRecord::StatementInvalid</a>
  
    <li><a href="../../ActiveRecord/Store.html">ActiveRecord::Store</a>
  
    <li><a href="../../ActiveRecord/Store/ClassMethods.html">ActiveRecord::Store::ClassMethods</a>
  
    <li><a href="../../ActiveRecord/TestFixtures.html">ActiveRecord::TestFixtures</a>
  
    <li><a href="../../ActiveRecord/TestFixtures/ClassMethods.html">ActiveRecord::TestFixtures::ClassMethods</a>
  
    <li><a href="../../ActiveRecord/ThrowResult.html">ActiveRecord::ThrowResult</a>
  
    <li><a href="../../ActiveRecord/Timestamp.html">ActiveRecord::Timestamp</a>
  
    <li><a href="../../ActiveRecord/Transactions.html">ActiveRecord::Transactions</a>
  
    <li><a href="../../ActiveRecord/Transactions/ClassMethods.html">ActiveRecord::Transactions::ClassMethods</a>
  
    <li><a href="../../ActiveRecord/Translation.html">ActiveRecord::Translation</a>
  
    <li><a href="../../ActiveRecord/UnknownAttributeError.html">ActiveRecord::UnknownAttributeError</a>
  
    <li><a href="../../ActiveRecord/UnknownPrimaryKey.html">ActiveRecord::UnknownPrimaryKey</a>
  
    <li><a href="../../ActiveRecord/Validations.html">ActiveRecord::Validations</a>
  
    <li><a href="../../ActiveRecord/Validations/AssociatedValidator.html">ActiveRecord::Validations::AssociatedValidator</a>
  
    <li><a href="../../ActiveRecord/Validations/ClassMethods.html">ActiveRecord::Validations::ClassMethods</a>
  
    <li><a href="../../ActiveRecord/Validations/UniquenessValidator.html">ActiveRecord::Validations::UniquenessValidator</a>
  
    <li><a href="../../ActiveRecord/WrappedDatabaseException.html">ActiveRecord::WrappedDatabaseException</a>
  
    <li><a href="../../ActiveSupport.html">ActiveSupport</a>
  
    <li><a href="../../ActiveSupport/Autoload.html">ActiveSupport::Autoload</a>
  
    <li><a href="../../ActiveSupport/BacktraceCleaner.html">ActiveSupport::BacktraceCleaner</a>
  
    <li><a href="../../ActiveSupport/Base64.html">ActiveSupport::Base64</a>
  
    <li><a href="../../ActiveSupport/BasicObject.html">ActiveSupport::BasicObject</a>
  
    <li><a href="../../ActiveSupport/Benchmarkable.html">ActiveSupport::Benchmarkable</a>
  
    <li><a href="../../ActiveSupport/BufferedLogger.html">ActiveSupport::BufferedLogger</a>
  
    <li><a href="../../ActiveSupport/BufferedLogger/Severity.html">ActiveSupport::BufferedLogger::Severity</a>
  
    <li><a href="../../ActiveSupport/Cache.html">ActiveSupport::Cache</a>
  
    <li><a href="../../ActiveSupport/Cache/Entry.html">ActiveSupport::Cache::Entry</a>
  
    <li><a href="../../ActiveSupport/Cache/FileStore.html">ActiveSupport::Cache::FileStore</a>
  
    <li><a href="../../ActiveSupport/Cache/MemCacheStore.html">ActiveSupport::Cache::MemCacheStore</a>
  
    <li><a href="../../ActiveSupport/Cache/MemoryStore.html">ActiveSupport::Cache::MemoryStore</a>
  
    <li><a href="../../ActiveSupport/Cache/NullStore.html">ActiveSupport::Cache::NullStore</a>
  
    <li><a href="../../ActiveSupport/Cache/Store.html">ActiveSupport::Cache::Store</a>
  
    <li><a href="../../ActiveSupport/Cache/Strategy.html">ActiveSupport::Cache::Strategy</a>
  
    <li><a href="../../ActiveSupport/Cache/Strategy/LocalCache.html">ActiveSupport::Cache::Strategy::LocalCache</a>
  
    <li><a href="../../ActiveSupport/Cache/Strategy/LocalCache/LocalStore.html">ActiveSupport::Cache::Strategy::LocalCache::LocalStore</a>
  
    <li><a href="../../ActiveSupport/Callbacks.html">ActiveSupport::Callbacks</a>
  
    <li><a href="../../ActiveSupport/Callbacks/ClassMethods.html">ActiveSupport::Callbacks::ClassMethods</a>
  
    <li><a href="../../ActiveSupport/Concern.html">ActiveSupport::Concern</a>
  
    <li><a href="../../ActiveSupport/Configurable.html">ActiveSupport::Configurable</a>
  
    <li><a href="../../ActiveSupport/Configurable/ClassMethods.html">ActiveSupport::Configurable::ClassMethods</a>
  
    <li><a href="../../ActiveSupport/Configurable/Configuration.html">ActiveSupport::Configurable::Configuration</a>
  
    <li><a href="../../ActiveSupport/Dependencies.html">ActiveSupport::Dependencies</a>
  
    <li><a href="../../ActiveSupport/Dependencies/ClassCache.html">ActiveSupport::Dependencies::ClassCache</a>
  
    <li><a href="../../ActiveSupport/Dependencies/WatchStack.html">ActiveSupport::Dependencies::WatchStack</a>
  
    <li><a href="../../ActiveSupport/Deprecation.html">ActiveSupport::Deprecation</a>
  
    <li><a href="../../ActiveSupport/DescendantsTracker.html">ActiveSupport::DescendantsTracker</a>
  
    <li><a href="../../ActiveSupport/Duration.html">ActiveSupport::Duration</a>
  
    <li><a href="../../ActiveSupport/FileUpdateChecker.html">ActiveSupport::FileUpdateChecker</a>
  
    <li><a href="../../ActiveSupport/FileWatcher.html">ActiveSupport::FileWatcher</a>
  
    <li><a href="../../ActiveSupport/FileWatcher/Backend.html">ActiveSupport::FileWatcher::Backend</a>
  
    <li><a href="../../ActiveSupport/Gzip.html">ActiveSupport::Gzip</a>
  
    <li><a href="../../ActiveSupport/Gzip/Stream.html">ActiveSupport::Gzip::Stream</a>
  
    <li><a href="../../ActiveSupport/HashWithIndifferentAccess.html">ActiveSupport::HashWithIndifferentAccess</a>
  
    <li><a href="../../ActiveSupport/HashWithIndifferentAccess.html">ActiveSupport::HashWithIndifferentAccess</a>
  
    <li><a href="../../ActiveSupport/Inflector.html">ActiveSupport::Inflector</a>
  
    <li><a href="../../ActiveSupport/Inflector/Inflections.html">ActiveSupport::Inflector::Inflections</a>
  
    <li><a href="../../ActiveSupport/InheritableOptions.html">ActiveSupport::InheritableOptions</a>
  
    <li><a href="../../ActiveSupport/JSON.html">ActiveSupport::JSON</a>
  
    <li><a href="../../ActiveSupport/JSON/Encoding.html">ActiveSupport::JSON::Encoding</a>
  
    <li><a href="../../ActiveSupport/JSON/Encoding/CircularReferenceError.html">ActiveSupport::JSON::Encoding::CircularReferenceError</a>
  
    <li><a href="../../ActiveSupport/JSON/Encoding/Encoder.html">ActiveSupport::JSON::Encoding::Encoder</a>
  
    <li><a href="../../ActiveSupport/JSON/Variable.html">ActiveSupport::JSON::Variable</a>
  
    <li><a href="../../ActiveSupport/LogSubscriber.html">ActiveSupport::LogSubscriber</a>
  
    <li><a href="../../ActiveSupport/LogSubscriber/TestHelper.html">ActiveSupport::LogSubscriber::TestHelper</a>
  
    <li><a href="../../ActiveSupport/LogSubscriber/TestHelper/MockLogger.html">ActiveSupport::LogSubscriber::TestHelper::MockLogger</a>
  
    <li><a href="../../ActiveSupport/Memoizable.html">ActiveSupport::Memoizable</a>
  
    <li><a href="../../ActiveSupport/Memoizable/InstanceMethods.html">ActiveSupport::Memoizable::InstanceMethods</a>
  
    <li><a href="../../ActiveSupport/MessageEncryptor.html">ActiveSupport::MessageEncryptor</a>
  
    <li><a href="../../ActiveSupport/MessageEncryptor/InvalidMessage.html">ActiveSupport::MessageEncryptor::InvalidMessage</a>
  
    <li><a href="../../ActiveSupport/MessageVerifier.html">ActiveSupport::MessageVerifier</a>
  
    <li><a href="../../ActiveSupport/MessageVerifier/InvalidSignature.html">ActiveSupport::MessageVerifier::InvalidSignature</a>
  
    <li><a href="../../ActiveSupport/Multibyte.html">ActiveSupport::Multibyte</a>
  
    <li><a href="../../ActiveSupport/Multibyte/Chars.html">ActiveSupport::Multibyte::Chars</a>
  
    <li><a href="../../ActiveSupport/Multibyte/EncodingError.html">ActiveSupport::Multibyte::EncodingError</a>
  
    <li><a href="../../ActiveSupport/Multibyte/Unicode.html">ActiveSupport::Multibyte::Unicode</a>
  
    <li><a href="../../ActiveSupport/Multibyte/Unicode/Codepoint.html">ActiveSupport::Multibyte::Unicode::Codepoint</a>
  
    <li><a href="../../ActiveSupport/Multibyte/Unicode/UnicodeDatabase.html">ActiveSupport::Multibyte::Unicode::UnicodeDatabase</a>
  
    <li><a href="../../ActiveSupport/Notifications.html">ActiveSupport::Notifications</a>
  
    <li><a href="../../ActiveSupport/Notifications/Event.html">ActiveSupport::Notifications::Event</a>
  
    <li><a href="../../ActiveSupport/Notifications/Fanout.html">ActiveSupport::Notifications::Fanout</a>
  
    <li><a href="../../ActiveSupport/Notifications/Instrumenter.html">ActiveSupport::Notifications::Instrumenter</a>
  
    <li><a href="../../ActiveSupport/OrderedHash.html">ActiveSupport::OrderedHash</a>
  
    <li><a href="../../ActiveSupport/OrderedOptions.html">ActiveSupport::OrderedOptions</a>
  
    <li><a href="../../ActiveSupport/Railtie.html">ActiveSupport::Railtie</a>
  
    <li><a href="../../ActiveSupport/Rescuable.html">ActiveSupport::Rescuable</a>
  
    <li><a href="../../ActiveSupport/Rescuable/ClassMethods.html">ActiveSupport::Rescuable::ClassMethods</a>
  
    <li><a href="../../ActiveSupport/SafeBuffer.html">ActiveSupport::SafeBuffer</a>
  
    <li><a href="../../ActiveSupport/SafeBuffer/SafeConcatError.html">ActiveSupport::SafeBuffer::SafeConcatError</a>
  
    <li><a href="../../ActiveSupport/StringInquirer.html">ActiveSupport::StringInquirer</a>
  
    <li><a href="../../ActiveSupport/TaggedLogging.html">ActiveSupport::TaggedLogging</a>
  
    <li><a href="../../ActiveSupport/TestCase.html">ActiveSupport::TestCase</a>
  
    <li><a href="../../ActiveSupport/Testing.html">ActiveSupport::Testing</a>
  
    <li><a href="../../ActiveSupport/Testing/Assertions.html">ActiveSupport::Testing::Assertions</a>
  
    <li><a href="../../ActiveSupport/Testing/Declarative.html">ActiveSupport::Testing::Declarative</a>
  
    <li><a href="../../ActiveSupport/Testing/Isolation.html">ActiveSupport::Testing::Isolation</a>
  
    <li><a href="../../ActiveSupport/Testing/Isolation/Forking.html">ActiveSupport::Testing::Isolation::Forking</a>
  
    <li><a href="../../ActiveSupport/Testing/Isolation/MiniTest.html">ActiveSupport::Testing::Isolation::MiniTest</a>
  
    <li><a href="../../ActiveSupport/Testing/Isolation/Subprocess.html">ActiveSupport::Testing::Isolation::Subprocess</a>
  
    <li><a href="../../ActiveSupport/Testing/Isolation/TestUnit.html">ActiveSupport::Testing::Isolation::TestUnit</a>
  
    <li><a href="../../ActiveSupport/Testing/Pending.html">ActiveSupport::Testing::Pending</a>
  
    <li><a href="../../ActiveSupport/Testing/Performance.html">ActiveSupport::Testing::Performance</a>
  
    <li><a href="../../ActiveSupport/Testing/Performance/Benchmarker.html">ActiveSupport::Testing::Performance::Benchmarker</a>
  
    <li><a href="../../ActiveSupport/Testing/Performance/ForClassicTestUnit.html">ActiveSupport::Testing::Performance::ForClassicTestUnit</a>
  
    <li><a href="../../ActiveSupport/Testing/Performance/ForMiniTest.html">ActiveSupport::Testing::Performance::ForMiniTest</a>
  
    <li><a href="../../ActiveSupport/Testing/Performance/Metrics.html">ActiveSupport::Testing::Performance::Metrics</a>
  
    <li><a href="../../ActiveSupport/Testing/Performance/Metrics/Amount.html">ActiveSupport::Testing::Performance::Metrics::Amount</a>
  
    <li><a href="../../ActiveSupport/Testing/Performance/Metrics/Base.html">ActiveSupport::Testing::Performance::Metrics::Base</a>
  
    <li><a href="../../ActiveSupport/Testing/Performance/Metrics/CpuTime.html">ActiveSupport::Testing::Performance::Metrics::CpuTime</a>
  
    <li><a href="../../ActiveSupport/Testing/Performance/Metrics/DigitalInformationUnit.html">ActiveSupport::Testing::Performance::Metrics::DigitalInformationUnit</a>
  
    <li><a href="../../ActiveSupport/Testing/Performance/Metrics/GcRuns.html">ActiveSupport::Testing::Performance::Metrics::GcRuns</a>
  
    <li><a href="../../ActiveSupport/Testing/Performance/Metrics/GcTime.html">ActiveSupport::Testing::Performance::Metrics::GcTime</a>
  
    <li><a href="../../ActiveSupport/Testing/Performance/Metrics/Memory.html">ActiveSupport::Testing::Performance::Metrics::Memory</a>
  
    <li><a href="../../ActiveSupport/Testing/Performance/Metrics/Objects.html">ActiveSupport::Testing::Performance::Metrics::Objects</a>
  
    <li><a href="../../ActiveSupport/Testing/Performance/Metrics/ProcessTime.html">ActiveSupport::Testing::Performance::Metrics::ProcessTime</a>
  
    <li><a href="../../ActiveSupport/Testing/Performance/Metrics/Time.html">ActiveSupport::Testing::Performance::Metrics::Time</a>
  
    <li><a href="../../ActiveSupport/Testing/Performance/Metrics/UserTime.html">ActiveSupport::Testing::Performance::Metrics::UserTime</a>
  
    <li><a href="../../ActiveSupport/Testing/Performance/Metrics/WallTime.html">ActiveSupport::Testing::Performance::Metrics::WallTime</a>
  
    <li><a href="../../ActiveSupport/Testing/Performance/Performer.html">ActiveSupport::Testing::Performance::Performer</a>
  
    <li><a href="../../ActiveSupport/Testing/Performance/Profiler.html">ActiveSupport::Testing::Performance::Profiler</a>
  
    <li><a href="../../ActiveSupport/Testing/ProxyTestResult.html">ActiveSupport::Testing::ProxyTestResult</a>
  
    <li><a href="../../ActiveSupport/Testing/RemoteError.html">ActiveSupport::Testing::RemoteError</a>
  
    <li><a href="../../ActiveSupport/Testing/SetupAndTeardown.html">ActiveSupport::Testing::SetupAndTeardown</a>
  
    <li><a href="../../ActiveSupport/Testing/SetupAndTeardown/ClassMethods.html">ActiveSupport::Testing::SetupAndTeardown::ClassMethods</a>
  
    <li><a href="../../ActiveSupport/Testing/SetupAndTeardown/ForClassicTestUnit.html">ActiveSupport::Testing::SetupAndTeardown::ForClassicTestUnit</a>
  
    <li><a href="../../ActiveSupport/Testing/SetupAndTeardown/ForMiniTest.html">ActiveSupport::Testing::SetupAndTeardown::ForMiniTest</a>
  
    <li><a href="../../ActiveSupport/TimeWithZone.html">ActiveSupport::TimeWithZone</a>
  
    <li><a href="../../ActiveSupport/TimeZone.html">ActiveSupport::TimeZone</a>
  
    <li><a href="../../ActiveSupport/XmlMini.html">ActiveSupport::XmlMini</a>
  
    <li><a href="../../ActiveSupport/XmlMini_LibXMLSAX.html">ActiveSupport::XmlMini_LibXMLSAX</a>
  
    <li><a href="../../ActiveSupport/XmlMini_LibXMLSAX/HashBuilder.html">ActiveSupport::XmlMini_LibXMLSAX::HashBuilder</a>
  
    <li><a href="../../ActiveSupport/XmlMini_NokogiriSAX.html">ActiveSupport::XmlMini_NokogiriSAX</a>
  
    <li><a href="../../ActiveSupport/XmlMini_NokogiriSAX/HashBuilder.html">ActiveSupport::XmlMini_NokogiriSAX::HashBuilder</a>
  
    <li><a href="../../ActionController.html">ActionController</a>
  
    <li><a href="../../ActionController/Base.html">ActionController::Base</a>
  
    <li><a href="../../ActionController/Caching.html">ActionController::Caching</a>
  
    <li><a href="../../ActionController/Caching/Actions.html">ActionController::Caching::Actions</a>
  
    <li><a href="../../ActionController/Caching/Actions/ActionCachePath.html">ActionController::Caching::Actions::ActionCachePath</a>
  
    <li><a href="../../ActionController/Caching/Actions/ClassMethods.html">ActionController::Caching::Actions::ClassMethods</a>
  
    <li><a href="../../ActionController/Caching/ConfigMethods.html">ActionController::Caching::ConfigMethods</a>
  
    <li><a href="../../ActionController/Caching/Fragments.html">ActionController::Caching::Fragments</a>
  
    <li><a href="../../ActionController/Caching/Pages.html">ActionController::Caching::Pages</a>
  
    <li><a href="../../ActionController/Caching/Pages/ClassMethods.html">ActionController::Caching::Pages::ClassMethods</a>
  
    <li><a href="../../ActionController/Caching/Sweeping.html">ActionController::Caching::Sweeping</a>
  
    <li><a href="../../ActionController/Compatibility.html">ActionController::Compatibility</a>
  
    <li><a href="../../ActionController/ConditionalGet.html">ActionController::ConditionalGet</a>
  
    <li><a href="../../ActionController/Cookies.html">ActionController::Cookies</a>
  
    <li><a href="../../ActionController/DataStreaming.html">ActionController::DataStreaming</a>
  
    <li><a href="../../ActionController/Flash.html">ActionController::Flash</a>
  
    <li><a href="../../ActionController/ForceSSL.html">ActionController::ForceSSL</a>
  
    <li><a href="../../ActionController/ForceSSL/ClassMethods.html">ActionController::ForceSSL::ClassMethods</a>
  
    <li><a href="../../ActionController/Head.html">ActionController::Head</a>
  
    <li><a href="../../ActionController/Helpers.html">ActionController::Helpers</a>
  
    <li><a href="../../ActionController/Helpers/ClassMethods.html">ActionController::Helpers::ClassMethods</a>
  
    <li><a href="../../ActionController/HideActions.html">ActionController::HideActions</a>
  
    <li><a href="../../ActionController/HideActions/ClassMethods.html">ActionController::HideActions::ClassMethods</a>
  
    <li><a href="../../ActionController/HttpAuthentication.html">ActionController::HttpAuthentication</a>
  
    <li><a href="../../ActionController/HttpAuthentication/Basic.html">ActionController::HttpAuthentication::Basic</a>
  
    <li><a href="../../ActionController/HttpAuthentication/Basic/ControllerMethods.html">ActionController::HttpAuthentication::Basic::ControllerMethods</a>
  
    <li><a href="../../ActionController/HttpAuthentication/Basic/ControllerMethods/ClassMethods.html">ActionController::HttpAuthentication::Basic::ControllerMethods::ClassMethods</a>
  
    <li><a href="../../ActionController/HttpAuthentication/Digest.html">ActionController::HttpAuthentication::Digest</a>
  
    <li><a href="../../ActionController/HttpAuthentication/Digest/ControllerMethods.html">ActionController::HttpAuthentication::Digest::ControllerMethods</a>
  
    <li><a href="../../ActionController/HttpAuthentication/Token.html">ActionController::HttpAuthentication::Token</a>
  
    <li><a href="../../ActionController/HttpAuthentication/Token/ControllerMethods.html">ActionController::HttpAuthentication::Token::ControllerMethods</a>
  
    <li><a href="../../ActionController/ImplicitRender.html">ActionController::ImplicitRender</a>
  
    <li><a href="../../ActionController/Instrumentation.html">ActionController::Instrumentation</a>
  
    <li><a href="../../ActionController/Instrumentation/ClassMethods.html">ActionController::Instrumentation::ClassMethods</a>
  
    <li><a href="../../ActionController/LogSubscriber.html">ActionController::LogSubscriber</a>
  
    <li><a href="../../ActionController/Metal.html">ActionController::Metal</a>
  
    <li><a href="../../ActionController/Middleware.html">ActionController::Middleware</a>
  
    <li><a href="../../ActionController/Middleware/ActionMiddleware.html">ActionController::Middleware::ActionMiddleware</a>
  
    <li><a href="../../ActionController/MimeResponds.html">ActionController::MimeResponds</a>
  
    <li><a href="../../ActionController/MimeResponds/ClassMethods.html">ActionController::MimeResponds::ClassMethods</a>
  
    <li><a href="../../ActionController/ParamsWrapper.html">ActionController::ParamsWrapper</a>
  
    <li><a href="../../ActionController/ParamsWrapper/ClassMethods.html">ActionController::ParamsWrapper::ClassMethods</a>
  
    <li><a href="../../ActionController/RackDelegation.html">ActionController::RackDelegation</a>
  
    <li><a href="../../ActionController/Railtie.html">ActionController::Railtie</a>
  
    <li><a href="../../ActionController/Railties.html">ActionController::Railties</a>
  
    <li><a href="../../ActionController/Railties/Paths.html">ActionController::Railties::Paths</a>
  
    <li><a href="../../ActionController/RecordIdentifier.html">ActionController::RecordIdentifier</a>
  
    <li><a href="../../ActionController/Redirecting.html">ActionController::Redirecting</a>
  
    <li><a href="../../ActionController/Renderers.html">ActionController::Renderers</a>
  
    <li><a href="../../ActionController/Renderers/All.html">ActionController::Renderers::All</a>
  
    <li><a href="../../ActionController/Renderers/ClassMethods.html">ActionController::Renderers::ClassMethods</a>
  
    <li><a href="../../ActionController/Rendering.html">ActionController::Rendering</a>
  
    <li><a href="../../ActionController/RequestForgeryProtection.html">ActionController::RequestForgeryProtection</a>
  
    <li><a href="../../ActionController/RequestForgeryProtection/ClassMethods.html">ActionController::RequestForgeryProtection::ClassMethods</a>
  
    <li><a href="../../ActionController/Rescue.html">ActionController::Rescue</a>
  
    <li><a href="../../ActionController/Responder.html">ActionController::Responder</a>
  
    <li><a href="../../ActionController/SessionManagement.html">ActionController::SessionManagement</a>
  
    <li><a href="../../ActionController/SessionManagement/ClassMethods.html">ActionController::SessionManagement::ClassMethods</a>
  
    <li><a href="../../ActionController/Streaming.html">ActionController::Streaming</a>
  
    <li><a href="../../ActionController/TemplateAssertions.html">ActionController::TemplateAssertions</a>
  
    <li><a href="../../ActionController/TestCase.html">ActionController::TestCase</a>
  
    <li><a href="../../ActionController/TestCase/Behavior.html">ActionController::TestCase::Behavior</a>
  
    <li><a href="../../ActionController/TestCase/Behavior/ClassMethods.html">ActionController::TestCase::Behavior::ClassMethods</a>
  
    <li><a href="../../ActionController/TestCase/RaiseActionExceptions.html">ActionController::TestCase::RaiseActionExceptions</a>
  
    <li><a href="../../ActionController/TestResponse.html">ActionController::TestResponse</a>
  
    <li><a href="../../ActionController/Testing.html">ActionController::Testing</a>
  
    <li><a href="../../ActionController/Testing/ClassMethods.html">ActionController::Testing::ClassMethods</a>
  
    <li><a href="../../ActionController/UrlFor.html">ActionController::UrlFor</a>
  
    <li><a href="../../ActionView.html">ActionView</a>
  
    <li><a href="../../ActionView/ActionView.html">ActionView::ActionView</a>
  
    <li><a href="../../ActionView/ActionView/ActionView.html">ActionView::ActionView::ActionView</a>
  
    <li><a href="../../ActionView/ActionView/ActionView/Base.html">ActionView::ActionView::ActionView::Base</a>
  
    <li><a href="../../ActionView/Base.html">ActionView::Base</a>
  
    <li><a href="../../ActionView/Context.html">ActionView::Context</a>
  
    <li><a href="../../ActionView/FileSystemResolver.html">ActionView::FileSystemResolver</a>
  
    <li><a href="../../ActionView/FixtureResolver.html">ActionView::FixtureResolver</a>
  
    <li><a href="../../ActionView/Helpers.html">ActionView::Helpers</a>
  
    <li><a href="../../ActionView/Helpers/ActiveModelHelper.html">ActionView::Helpers::ActiveModelHelper</a>
  
    <li><a href="../../ActionView/Helpers/ActiveModelInstanceTag.html">ActionView::Helpers::ActiveModelInstanceTag</a>
  
    <li><a href="../../ActionView/Helpers/AssetTagHelper.html">ActionView::Helpers::AssetTagHelper</a>
  
    <li><a href="../../ActionView/Helpers/AssetTagHelper/AssetIncludeTag.html">ActionView::Helpers::AssetTagHelper::AssetIncludeTag</a>
  
    <li><a href="../../ActionView/Helpers/AssetTagHelper/JavascriptIncludeTag.html">ActionView::Helpers::AssetTagHelper::JavascriptIncludeTag</a>
  
    <li><a href="../../ActionView/Helpers/AssetTagHelper/JavascriptTagHelpers.html">ActionView::Helpers::AssetTagHelper::JavascriptTagHelpers</a>
  
    <li><a href="../../ActionView/Helpers/AssetTagHelper/JavascriptTagHelpers/ClassMethods.html">ActionView::Helpers::AssetTagHelper::JavascriptTagHelpers::ClassMethods</a>
  
    <li><a href="../../ActionView/Helpers/AssetTagHelper/StylesheetIncludeTag.html">ActionView::Helpers::AssetTagHelper::StylesheetIncludeTag</a>
  
    <li><a href="../../ActionView/Helpers/AssetTagHelper/StylesheetTagHelpers.html">ActionView::Helpers::AssetTagHelper::StylesheetTagHelpers</a>
  
    <li><a href="../../ActionView/Helpers/AssetTagHelper/StylesheetTagHelpers/ClassMethods.html">ActionView::Helpers::AssetTagHelper::StylesheetTagHelpers::ClassMethods</a>
  
    <li><a href="../../ActionView/Helpers/AtomFeedHelper.html">ActionView::Helpers::AtomFeedHelper</a>
  
    <li><a href="../../ActionView/Helpers/AtomFeedHelper/AtomBuilder.html">ActionView::Helpers::AtomFeedHelper::AtomBuilder</a>
  
    <li><a href="../../ActionView/Helpers/AtomFeedHelper/AtomFeedBuilder.html">ActionView::Helpers::AtomFeedHelper::AtomFeedBuilder</a>
  
    <li><a href="../../ActionView/Helpers/CacheHelper.html">ActionView::Helpers::CacheHelper</a>
  
    <li><a href="../../ActionView/Helpers/CaptureHelper.html">ActionView::Helpers::CaptureHelper</a>
  
    <li><a href="../../ActionView/Helpers/CsrfHelper.html">ActionView::Helpers::CsrfHelper</a>
  
    <li><a href="../../ActionView/Helpers/DateHelper.html">ActionView::Helpers::DateHelper</a>
  
    <li><a href="../../ActionView/Helpers/DateHelperInstanceTag.html">ActionView::Helpers::DateHelperInstanceTag</a>
  
    <li><a href="../../ActionView/Helpers/DebugHelper.html">ActionView::Helpers::DebugHelper</a>
  
    <li><a href="../../ActionView/Helpers/FormBuilder.html">ActionView::Helpers::FormBuilder</a>
  
    <li><a href="../../ActionView/Helpers/FormHelper.html">ActionView::Helpers::FormHelper</a>
  
    <li><a href="../../ActionView/Helpers/FormOptionsHelper.html">ActionView::Helpers::FormOptionsHelper</a>
  
    <li><a href="../../ActionView/Helpers/FormTagHelper.html">ActionView::Helpers::FormTagHelper</a>
  
    <li><a href="../../ActionView/Helpers/InstanceTag.html">ActionView::Helpers::InstanceTag</a>
  
    <li><a href="../../ActionView/Helpers/JavaScriptHelper.html">ActionView::Helpers::JavaScriptHelper</a>
  
    <li><a href="../../ActionView/Helpers/NumberHelper.html">ActionView::Helpers::NumberHelper</a>
  
    <li><a href="../../ActionView/Helpers/NumberHelper/InvalidNumberError.html">ActionView::Helpers::NumberHelper::InvalidNumberError</a>
  
    <li><a href="../../ActionView/Helpers/OutputSafetyHelper.html">ActionView::Helpers::OutputSafetyHelper</a>
  
    <li><a href="../../ActionView/Helpers/RecordTagHelper.html">ActionView::Helpers::RecordTagHelper</a>
  
    <li><a href="../../ActionView/Helpers/RenderingHelper.html">ActionView::Helpers::RenderingHelper</a>
  
    <li><a href="../../ActionView/Helpers/SanitizeHelper.html">ActionView::Helpers::SanitizeHelper</a>
  
    <li><a href="../../ActionView/Helpers/TagHelper.html">ActionView::Helpers::TagHelper</a>
  
    <li><a href="../../ActionView/Helpers/TextHelper.html">ActionView::Helpers::TextHelper</a>
  
    <li><a href="../../ActionView/Helpers/TranslationHelper.html">ActionView::Helpers::TranslationHelper</a>
  
    <li><a href="../../ActionView/Helpers/UrlHelper.html">ActionView::Helpers::UrlHelper</a>
  
    <li><a href="../../ActionView/LogSubscriber.html">ActionView::LogSubscriber</a>
  
    <li><a href="../../ActionView/LookupContext.html">ActionView::LookupContext</a>
  
    <li><a href="../../ActionView/LookupContext/DetailsCache.html">ActionView::LookupContext::DetailsCache</a>
  
    <li><a href="../../ActionView/LookupContext/ViewPaths.html">ActionView::LookupContext::ViewPaths</a>
  
    <li><a href="../../ActionView/NullResolver.html">ActionView::NullResolver</a>
  
    <li><a href="../../ActionView/PartialRenderer.html">ActionView::PartialRenderer</a>
  
    <li><a href="../../ActionView/Railtie.html">ActionView::Railtie</a>
  
    <li><a href="../../ActionView/Renderer.html">ActionView::Renderer</a>
  
    <li><a href="../../ActionView/Resolver.html">ActionView::Resolver</a>
  
    <li><a href="../../ActionView/Resolver/Path.html">ActionView::Resolver::Path</a>
  
    <li><a href="../../ActionView/Template.html">ActionView::Template</a>
  
    <li><a href="../../ActionView/Template/Handlers.html">ActionView::Template::Handlers</a>
  
    <li><a href="../../ActionView/Template/Handlers/Builder.html">ActionView::Template::Handlers::Builder</a>
  
    <li><a href="../../ActionView/Template/Handlers/ERB.html">ActionView::Template::Handlers::ERB</a>
  
    <li><a href="../../ActionView/Template/Handlers/Erubis.html">ActionView::Template::Handlers::Erubis</a>
  
    <li><a href="../../ActionView/TestCase.html">ActionView::TestCase</a>
  
    <li><a href="../../ActionView/TestCase/Behavior.html">ActionView::TestCase::Behavior</a>
  
    <li><a href="../../ActionView/TestCase/Behavior/ClassMethods.html">ActionView::TestCase::Behavior::ClassMethods</a>
  
    <li><a href="../../ActionView/TestCase/Behavior/Locals.html">ActionView::TestCase::Behavior::Locals</a>
  
    <li><a href="../../ActionView/TestCase/TestController.html">ActionView::TestCase::TestController</a>
  
    <li><a href="../../ActiveModel.html">ActiveModel</a>
  
    <li><a href="../../ActiveModel/AttributeMethods.html">ActiveModel::AttributeMethods</a>
  
    <li><a href="../../ActiveModel/AttributeMethods/ClassMethods.html">ActiveModel::AttributeMethods::ClassMethods</a>
  
    <li><a href="../../ActiveModel/AttributeMethods/ClassMethods/AttributeMethodMatcher.html">ActiveModel::AttributeMethods::ClassMethods::AttributeMethodMatcher</a>
  
    <li><a href="../../ActiveModel/BlockValidator.html">ActiveModel::BlockValidator</a>
  
    <li><a href="../../ActiveModel/Callbacks.html">ActiveModel::Callbacks</a>
  
    <li><a href="../../ActiveModel/Conversion.html">ActiveModel::Conversion</a>
  
    <li><a href="../../ActiveModel/Dirty.html">ActiveModel::Dirty</a>
  
    <li><a href="../../ActiveModel/EachValidator.html">ActiveModel::EachValidator</a>
  
    <li><a href="../../ActiveModel/Errors.html">ActiveModel::Errors</a>
  
    <li><a href="../../ActiveModel/Lint.html">ActiveModel::Lint</a>
  
    <li><a href="../../ActiveModel/Lint/Tests.html">ActiveModel::Lint::Tests</a>
  
    <li><a href="../../ActiveModel/MassAssignmentSecurity.html">ActiveModel::MassAssignmentSecurity</a>
  
    <li><a href="../../ActiveModel/MassAssignmentSecurity/BlackList.html">ActiveModel::MassAssignmentSecurity::BlackList</a>
  
    <li><a href="../../ActiveModel/MassAssignmentSecurity/ClassMethods.html">ActiveModel::MassAssignmentSecurity::ClassMethods</a>
  
    <li><a href="../../ActiveModel/MassAssignmentSecurity/Error.html">ActiveModel::MassAssignmentSecurity::Error</a>
  
    <li><a href="../../ActiveModel/MassAssignmentSecurity/LoggerSanitizer.html">ActiveModel::MassAssignmentSecurity::LoggerSanitizer</a>
  
    <li><a href="../../ActiveModel/MassAssignmentSecurity/PermissionSet.html">ActiveModel::MassAssignmentSecurity::PermissionSet</a>
  
    <li><a href="../../ActiveModel/MassAssignmentSecurity/Sanitizer.html">ActiveModel::MassAssignmentSecurity::Sanitizer</a>
  
    <li><a href="../../ActiveModel/MassAssignmentSecurity/StrictSanitizer.html">ActiveModel::MassAssignmentSecurity::StrictSanitizer</a>
  
    <li><a href="../../ActiveModel/MassAssignmentSecurity/WhiteList.html">ActiveModel::MassAssignmentSecurity::WhiteList</a>
  
    <li><a href="../../ActiveModel/MissingAttributeError.html">ActiveModel::MissingAttributeError</a>
  
    <li><a href="../../ActiveModel/Name.html">ActiveModel::Name</a>
  
    <li><a href="../../ActiveModel/Naming.html">ActiveModel::Naming</a>
  
    <li><a href="../../ActiveModel/Observer.html">ActiveModel::Observer</a>
  
    <li><a href="../../ActiveModel/ObserverArray.html">ActiveModel::ObserverArray</a>
  
    <li><a href="../../ActiveModel/Observing.html">ActiveModel::Observing</a>
  
    <li><a href="../../ActiveModel/Observing/ClassMethods.html">ActiveModel::Observing::ClassMethods</a>
  
    <li><a href="../../ActiveModel/SecurePassword.html">ActiveModel::SecurePassword</a>
  
    <li><a href="../../ActiveModel/SecurePassword/ClassMethods.html">ActiveModel::SecurePassword::ClassMethods</a>
  
    <li><a href="../../ActiveModel/SecurePassword/InstanceMethodsOnActivation.html">ActiveModel::SecurePassword::InstanceMethodsOnActivation</a>
  
    <li><a href="../../ActiveModel/Serialization.html">ActiveModel::Serialization</a>
  
    <li><a href="../../ActiveModel/Serializers.html">ActiveModel::Serializers</a>
  
    <li><a href="../../ActiveModel/Serializers/JSON.html">ActiveModel::Serializers::JSON</a>
  
    <li><a href="../../ActiveModel/Serializers/Xml.html">ActiveModel::Serializers::Xml</a>
  
    <li><a href="../../ActiveModel/StrictValidationFailed.html">ActiveModel::StrictValidationFailed</a>
  
    <li><a href="../../ActiveModel/Translation.html">ActiveModel::Translation</a>
  
    <li><a href="../../ActiveModel/Validations.html">ActiveModel::Validations</a>
  
    <li><a href="../../ActiveModel/Validations/AcceptanceValidator.html">ActiveModel::Validations::AcceptanceValidator</a>
  
    <li><a href="../../ActiveModel/Validations/Callbacks.html">ActiveModel::Validations::Callbacks</a>
  
    <li><a href="../../ActiveModel/Validations/Callbacks/ClassMethods.html">ActiveModel::Validations::Callbacks::ClassMethods</a>
  
    <li><a href="../../ActiveModel/Validations/ClassMethods.html">ActiveModel::Validations::ClassMethods</a>
  
    <li><a href="../../ActiveModel/Validations/ConfirmationValidator.html">ActiveModel::Validations::ConfirmationValidator</a>
  
    <li><a href="../../ActiveModel/Validations/ExclusionValidator.html">ActiveModel::Validations::ExclusionValidator</a>
  
    <li><a href="../../ActiveModel/Validations/FormatValidator.html">ActiveModel::Validations::FormatValidator</a>
  
    <li><a href="../../ActiveModel/Validations/HelperMethods.html">ActiveModel::Validations::HelperMethods</a>
  
    <li><a href="../../ActiveModel/Validations/InclusionValidator.html">ActiveModel::Validations::InclusionValidator</a>
  
    <li><a href="../../ActiveModel/Validations/LengthValidator.html">ActiveModel::Validations::LengthValidator</a>
  
    <li><a href="../../ActiveModel/Validations/NumericalityValidator.html">ActiveModel::Validations::NumericalityValidator</a>
  
    <li><a href="../../ActiveModel/Validations/PresenceValidator.html">ActiveModel::Validations::PresenceValidator</a>
  
    <li><a href="../../ActiveModel/Validations/WithValidator.html">ActiveModel::Validations::WithValidator</a>
  
    <li><a href="../../ActiveModel/Validator.html">ActiveModel::Validator</a>
  
    <li><a href="../../ActiveResource.html">ActiveResource</a>
  
    <li><a href="../../ActiveResource/Base.html">ActiveResource::Base</a>
  
    <li><a href="../../ActiveResource/Connection.html">ActiveResource::Connection</a>
  
    <li><a href="../../ActiveResource/CustomMethods.html">ActiveResource::CustomMethods</a>
  
    <li><a href="../../ActiveResource/CustomMethods/ClassMethods.html">ActiveResource::CustomMethods::ClassMethods</a>
  
    <li><a href="../../ActiveResource/Errors.html">ActiveResource::Errors</a>
  
    <li><a href="../../ActiveResource/Formats.html">ActiveResource::Formats</a>
  
    <li><a href="../../ActiveResource/Formats/JsonFormat.html">ActiveResource::Formats::JsonFormat</a>
  
    <li><a href="../../ActiveResource/Formats/XmlFormat.html">ActiveResource::Formats::XmlFormat</a>
  
    <li><a href="../../ActiveResource/HttpMock.html">ActiveResource::HttpMock</a>
  
    <li><a href="../../ActiveResource/InvalidRequestError.html">ActiveResource::InvalidRequestError</a>
  
    <li><a href="../../ActiveResource/LogSubscriber.html">ActiveResource::LogSubscriber</a>
  
    <li><a href="../../ActiveResource/Observing.html">ActiveResource::Observing</a>
  
    <li><a href="../../ActiveResource/Railtie.html">ActiveResource::Railtie</a>
  
    <li><a href="../../ActiveResource/Request.html">ActiveResource::Request</a>
  
    <li><a href="../../ActiveResource/Response.html">ActiveResource::Response</a>
  
    <li><a href="../../ActiveResource/SSLError.html">ActiveResource::SSLError</a>
  
    <li><a href="../../ActiveResource/TimeoutError.html">ActiveResource::TimeoutError</a>
  
    <li><a href="../../ActiveResource/Validations.html">ActiveResource::Validations</a>
  
    <li><a href="../../HTML.html">HTML</a>
  
    <li><a href="../../HTML/FullSanitizer.html">HTML::FullSanitizer</a>
  
    <li><a href="../../HTML/LinkSanitizer.html">HTML::LinkSanitizer</a>
  
    <li><a href="../../HTML/Sanitizer.html">HTML::Sanitizer</a>
  
    <li><a href="../../HTML/Selector.html">HTML::Selector</a>
  
    <li><a href="../../HTML/Tag.html">HTML::Tag</a>
  
    <li><a href="../../HTML/WhiteListSanitizer.html">HTML::WhiteListSanitizer</a>
  
    <li><a href="../../Mysql.html">Mysql</a>
  
    <li><a href="../../Mysql/Result.html">Mysql::Result</a>
  
    <li><a href="../../Mysql/Stmt.html">Mysql::Stmt</a>
  
    <li><a href="../../Mysql/Time.html">Mysql::Time</a>
  
    <li><a href="../../Test.html">Test</a>
  
    <li><a href="../../Test/Unit.html">Test::Unit</a>
  
    <li><a href="../../Test/Unit/Collector.html">Test::Unit::Collector</a>
  
    <li><a href="../../Test/Unit/Collector/ObjectSpace.html">Test::Unit::Collector::ObjectSpace</a>
  
    <li><a href="../../I18n.html">I18n</a>
  
    <li><a href="../../I18n/ExceptionHandler.html">I18n::ExceptionHandler</a>
  
    <li><a href="../../I18n/Railtie.html">I18n::Railtie</a>
  
    <li><a href="../../Object.html">Object</a>
  
    <li><a href="../../ActiveSupport/HashWithIndifferentAccess.html">Object::HashWithIndifferentAccess</a>
  
    <li><a href="../../LoadError.html">Object::MissingSourceFile</a>
  
    <li><a href="../../ActionMailer.html">ActionMailer</a>
  
    <li><a href="../../ActionMailer/Base.html">ActionMailer::Base</a>
  
    <li><a href="../../ArJdbcMySQL.html">ArJdbcMySQL</a>
  
    <li><a href="../../ArJdbcMySQL/Error.html">ArJdbcMySQL::Error</a>
  
    <li><a href="../../ERB.html">ERB</a>
  
    <li><a href="../../ERB/Util.html">ERB::Util</a>
  
    <li><a href="../../LoadError.html">LoadError</a>
  
    <li><a href="../../LoadError.html">LoadError</a>
  
    <li><a href="../../Logger.html">Logger</a>
  
    <li><a href="../../Logger/SimpleFormatter.html">Logger::SimpleFormatter</a>
  
    <li><a href="../../Array.html">Array</a>
  
    <li><a href="../../Base64.html">Base64</a>
  
    <li><a href="../../Benchmark.html">Benchmark</a>
  
    <li><a href="../../BigDecimal.html">BigDecimal</a>
  
    <li><a href="../../Class.html">Class</a>
  
    <li><a href="../../Date.html">Date</a>
  
    <li><a href="../../DateTime.html">DateTime</a>
  
    <li><a href="../../Enumerable.html">Enumerable</a>
  
    <li><a href="../../FalseClass.html">FalseClass</a>
  
    <li><a href="../../File.html">File</a>
  
    <li><a href="../../Float.html">Float</a>
  
    <li><a href="../../Hash.html">Hash</a>
  
    <li><a href="../../Integer.html">Integer</a>
  
    <li><a href="../../Kernel.html">Kernel</a>
  
    <li><a href="../../Module.html">Module</a>
  
    <li><a href="../../NameError.html">NameError</a>
  
    <li><a href="../../NilClass.html">NilClass</a>
  
    <li><a href="../../Numeric.html">Numeric</a>
  
    <li><a href="../../Process.html">Process</a>
  
    <li><a href="../../QualifiedConstUtils.html">QualifiedConstUtils</a>
  
    <li><a href="../../Rails.html">Rails</a>
  
    <li><a href="../../Range.html">Range</a>
  
    <li><a href="../../Regexp.html">Regexp</a>
  
    <li><a href="../../String.html">String</a>
  
    <li><a href="../../Symbol.html">Symbol</a>
  
    <li><a href="../../Time.html">Time</a>
  
    <li><a href="../../TrueClass.html">TrueClass</a>
  
    <li><a href="../../URI.html">URI</a>
  
  </ul>
</nav>

  </div>
</nav>

<div id="documentation">
  <h1 class="module">module ActiveRecord::ConnectionAdapters::SchemaStatements</h1>

  <div id="description" class="description">
    
  </div><!-- description -->

  
  
  
  <section id="5Buntitled-5D" class="documentation-section">
    

    

    

    

    <!-- Methods -->
    
     <section id="public-instance-5Buntitled-5D-method-details" class="method-section section">
      <h3 class="section-header">Public Instance Methods</h3>

    
      <div id="method-i-add_column" class="method-detail ">
        
        <div class="method-heading">
          <span class="method-name">add_column</span><span
            class="method-args">(table_name, column_name, type, options = {})</span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        

        <div class="method-description">
          
          <p>Adds a new column to the named table. See <a
href="TableDefinition.html#method-i-column">ActiveRecord::ConnectionAdapters::TableDefinition#column</a>
for details of the options you can use.</p>
          

          
          <div class="method-source-code" id="add_column-source">
            <pre><span class="ruby-comment"># File /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.7/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 261</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">add_column</span>(<span class="ruby-identifier">table_name</span>, <span class="ruby-identifier">column_name</span>, <span class="ruby-identifier">type</span>, <span class="ruby-identifier">options</span> = {})
  <span class="ruby-identifier">add_column_sql</span> = <span class="ruby-node">&quot;ALTER TABLE #{quote_table_name(table_name)} ADD #{quote_column_name(column_name)} #{type_to_sql(type, options[:limit], options[:precision], options[:scale])}&quot;</span>
  <span class="ruby-identifier">add_column_options!</span>(<span class="ruby-identifier">add_column_sql</span>, <span class="ruby-identifier">options</span>)
  <span class="ruby-identifier">execute</span>(<span class="ruby-identifier">add_column_sql</span>)
<span class="ruby-keyword">end</span></pre>
          </div><!-- add_column-source -->
          
        </div>

        

        
      </div><!-- add_column-method -->

    
      <div id="method-i-add_index" class="method-detail ">
        
        <div class="method-heading">
          <span class="method-name">add_index</span><span
            class="method-args">(table_name, column_name, options = {})</span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        

        <div class="method-description">
          
          <p>Adds a new index to the table. <code>column_name</code> can be a single <a
href="../../Symbol.html">Symbol</a>, or an <a
href="../../Array.html">Array</a> of Symbols.</p>

<p>The index will be named after the table and the column name(s), unless you
pass <code>:name</code> as an option.</p>

<h5 id="method-i-add_index-label-Examples">Examples</h5>

<h6 id="method-i-add_index-label-Creating+a+simple+index">Creating a simple index</h6>

<pre>add_index(:suppliers, :name)</pre>

<p>generates</p>

<pre>CREATE INDEX suppliers_name_index ON suppliers(name)</pre>

<h6 id="method-i-add_index-label-Creating+a+unique+index">Creating a unique index</h6>

<pre class="ruby"><span class="ruby-identifier">add_index</span>(:<span class="ruby-identifier">accounts</span>, [:<span class="ruby-identifier">branch_id</span>, :<span class="ruby-identifier">party_id</span>], :<span class="ruby-identifier">unique</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>)
</pre>

<p>generates</p>

<pre>CREATE UNIQUE INDEX accounts_branch_id_party_id_index ON accounts(branch_id, party_id)</pre>

<h6 id="method-i-add_index-label-Creating+a+named+index">Creating a named index</h6>

<pre class="ruby"><span class="ruby-identifier">add_index</span>(:<span class="ruby-identifier">accounts</span>, [:<span class="ruby-identifier">branch_id</span>, :<span class="ruby-identifier">party_id</span>], :<span class="ruby-identifier">unique</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>, :<span class="ruby-identifier">name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">'by_branch_party'</span>)
</pre>

<p>generates</p>

<pre>CREATE UNIQUE INDEX by_branch_party ON accounts(branch_id, party_id)</pre>

<h6 id="method-i-add_index-label-Creating+an+index+with+specific+key+length">Creating an index with specific key length</h6>

<pre class="ruby"><span class="ruby-identifier">add_index</span>(:<span class="ruby-identifier">accounts</span>, :<span class="ruby-identifier">name</span>, :<span class="ruby-identifier">name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">'by_name'</span>, :<span class="ruby-identifier">length</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">10</span>)
</pre>

<p>generates</p>

<pre class="ruby"><span class="ruby-constant">CREATE</span> <span class="ruby-constant">INDEX</span> <span class="ruby-identifier">by_name</span> <span class="ruby-constant">ON</span> <span class="ruby-identifier">accounts</span>(<span class="ruby-identifier">name</span>(<span class="ruby-value">10</span>))

<span class="ruby-identifier">add_index</span>(:<span class="ruby-identifier">accounts</span>, [:<span class="ruby-identifier">name</span>, :<span class="ruby-identifier">surname</span>], :<span class="ruby-identifier">name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">'by_name_surname'</span>, :<span class="ruby-identifier">length</span> =<span class="ruby-operator">&gt;</span> {:<span class="ruby-identifier">name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">10</span>, :<span class="ruby-identifier">surname</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">15</span>})
</pre>

<p>generates</p>

<pre>CREATE INDEX by_name_surname ON accounts(name(10), surname(15))</pre>

<p>Note: SQLite doesn’t support index length</p>

<h6 id="method-i-add_index-label-Creating+an+index+with+a+sort+order+%28desc+or+asc%2C+asc+is+the+default%29">Creating an index with a sort order (desc or asc, asc is the default)</h6>

<pre class="ruby"><span class="ruby-identifier">add_index</span>(:<span class="ruby-identifier">accounts</span>, [:<span class="ruby-identifier">branch_id</span>, :<span class="ruby-identifier">party_id</span>, :<span class="ruby-identifier">surname</span>], :<span class="ruby-identifier">order</span> =<span class="ruby-operator">&gt;</span> {:<span class="ruby-identifier">branch_id</span> =<span class="ruby-operator">&gt;</span> :<span class="ruby-identifier">desc</span>, :<span class="ruby-identifier">part_id</span> =<span class="ruby-operator">&gt;</span> :<span class="ruby-identifier">asc</span>})
</pre>

<p>generates</p>

<pre>CREATE INDEX by_branch_desc_party ON accounts(branch_id DESC, party_id ASC, surname)</pre>

<p>Note: mysql doesn’t yet support index order (it accepts the syntax but
ignores it)</p>
          

          
          <div class="method-source-code" id="add_index-source">
            <pre><span class="ruby-comment"># File /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.7/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 350</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">add_index</span>(<span class="ruby-identifier">table_name</span>, <span class="ruby-identifier">column_name</span>, <span class="ruby-identifier">options</span> = {})
  <span class="ruby-identifier">index_name</span>, <span class="ruby-identifier">index_type</span>, <span class="ruby-identifier">index_columns</span> = <span class="ruby-identifier">add_index_options</span>(<span class="ruby-identifier">table_name</span>, <span class="ruby-identifier">column_name</span>, <span class="ruby-identifier">options</span>)
  <span class="ruby-identifier">execute</span> <span class="ruby-node">&quot;CREATE #{index_type} INDEX #{quote_column_name(index_name)} ON #{quote_table_name(table_name)} (#{index_columns})&quot;</span>
<span class="ruby-keyword">end</span></pre>
          </div><!-- add_index-source -->
          
        </div>

        

        
      </div><!-- add_index-method -->

    
      <div id="method-i-add_timestamps" class="method-detail ">
        
        <div class="method-heading">
          <span class="method-name">add_timestamps</span><span
            class="method-args">(table_name)</span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        

        <div class="method-description">
          
          <p>Adds timestamps (created_at and updated_at) columns to the named table.</p>

<h5 id="method-i-add_timestamps-label-Examples">Examples</h5>

<pre>add_timestamps(:suppliers)</pre>
          

          
          <div class="method-source-code" id="add_timestamps-source">
            <pre><span class="ruby-comment"># File /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.7/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 518</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">add_timestamps</span>(<span class="ruby-identifier">table_name</span>)
  <span class="ruby-identifier">add_column</span> <span class="ruby-identifier">table_name</span>, <span class="ruby-value">:created_at</span>, <span class="ruby-value">:datetime</span>
  <span class="ruby-identifier">add_column</span> <span class="ruby-identifier">table_name</span>, <span class="ruby-value">:updated_at</span>, <span class="ruby-value">:datetime</span>
<span class="ruby-keyword">end</span></pre>
          </div><!-- add_timestamps-source -->
          
        </div>

        

        
      </div><!-- add_timestamps-method -->

    
      <div id="method-i-assume_migrated_upto_version" class="method-detail ">
        
        <div class="method-heading">
          <span class="method-name">assume_migrated_upto_version</span><span
            class="method-args">(version, migrations_paths = ActiveRecord::Migrator.migrations_paths)</span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        

        <div class="method-description">
          
          
          

          
          <div class="method-source-code" id="assume_migrated_upto_version-source">
            <pre><span class="ruby-comment"># File /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.7/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 446</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">assume_migrated_upto_version</span>(<span class="ruby-identifier">version</span>, <span class="ruby-identifier">migrations_paths</span> = <span class="ruby-constant">ActiveRecord</span><span class="ruby-operator">::</span><span class="ruby-constant">Migrator</span>.<span class="ruby-identifier">migrations_paths</span>)
  <span class="ruby-identifier">migrations_paths</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">wrap</span>(<span class="ruby-identifier">migrations_paths</span>)
  <span class="ruby-identifier">version</span> = <span class="ruby-identifier">version</span>.<span class="ruby-identifier">to_i</span>
  <span class="ruby-identifier">sm_table</span> = <span class="ruby-identifier">quote_table_name</span>(<span class="ruby-constant">ActiveRecord</span><span class="ruby-operator">::</span><span class="ruby-constant">Migrator</span>.<span class="ruby-identifier">schema_migrations_table_name</span>)

  <span class="ruby-identifier">migrated</span> = <span class="ruby-identifier">select_values</span>(<span class="ruby-node">&quot;SELECT version FROM #{sm_table}&quot;</span>).<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">v</span>.<span class="ruby-identifier">to_i</span> }
  <span class="ruby-identifier">paths</span> = <span class="ruby-identifier">migrations_paths</span>.<span class="ruby-identifier">map</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-node">&quot;#{p}/[0-9]*_*.rb&quot;</span> }
  <span class="ruby-identifier">versions</span> = <span class="ruby-constant">Dir</span>[*<span class="ruby-identifier">paths</span>].<span class="ruby-identifier">map</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">filename</span><span class="ruby-operator">|</span>
    <span class="ruby-identifier">filename</span>.<span class="ruby-identifier">split</span>(<span class="ruby-string">'/'</span>).<span class="ruby-identifier">last</span>.<span class="ruby-identifier">split</span>(<span class="ruby-string">'_'</span>).<span class="ruby-identifier">first</span>.<span class="ruby-identifier">to_i</span>
  <span class="ruby-keyword">end</span>

  <span class="ruby-keyword">unless</span> <span class="ruby-identifier">migrated</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">version</span>)
    <span class="ruby-identifier">execute</span> <span class="ruby-node">&quot;INSERT INTO #{sm_table} (version) VALUES ('#{version}')&quot;</span>
  <span class="ruby-keyword">end</span>

  <span class="ruby-identifier">inserted</span> = <span class="ruby-constant">Set</span>.<span class="ruby-identifier">new</span>
  (<span class="ruby-identifier">versions</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">migrated</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
    <span class="ruby-keyword">if</span> <span class="ruby-identifier">inserted</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">v</span>)
      <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Duplicate migration #{v}. Please renumber your migrations to resolve the conflict.&quot;</span>
    <span class="ruby-keyword">elsif</span> <span class="ruby-identifier">v</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">version</span>
      <span class="ruby-identifier">execute</span> <span class="ruby-node">&quot;INSERT INTO #{sm_table} (version) VALUES ('#{v}')&quot;</span>
      <span class="ruby-identifier">inserted</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">v</span>
    <span class="ruby-keyword">end</span>
  <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
          </div><!-- assume_migrated_upto_version-source -->
          
        </div>

        

        
      </div><!-- assume_migrated_upto_version-method -->

    
      <div id="method-i-change_column" class="method-detail ">
        
        <div class="method-heading">
          <span class="method-name">change_column</span><span
            class="method-args">(table_name, column_name, type, options = {})</span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        

        <div class="method-description">
          
          <p>Changes the column’s definition according to the new options. See <a
href="TableDefinition.html#method-i-column">ActiveRecord::ConnectionAdapters::TableDefinition#column</a>
for details of the options you can use.</p>

<h5 id="method-i-change_column-label-Examples">Examples</h5>

<pre class="ruby"><span class="ruby-identifier">change_column</span>(:<span class="ruby-identifier">suppliers</span>, :<span class="ruby-identifier">name</span>, :<span class="ruby-identifier">string</span>, :<span class="ruby-identifier">limit</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">80</span>)
<span class="ruby-identifier">change_column</span>(:<span class="ruby-identifier">accounts</span>, :<span class="ruby-identifier">description</span>, :<span class="ruby-identifier">text</span>)
</pre>
          

          
          <div class="method-source-code" id="change_column-source">
            <pre><span class="ruby-comment"># File /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.7/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 289</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">change_column</span>(<span class="ruby-identifier">table_name</span>, <span class="ruby-identifier">column_name</span>, <span class="ruby-identifier">type</span>, <span class="ruby-identifier">options</span> = {})
  <span class="ruby-identifier">raise</span> <span class="ruby-constant">NotImplementedError</span>, <span class="ruby-string">&quot;change_column is not implemented&quot;</span>
<span class="ruby-keyword">end</span></pre>
          </div><!-- change_column-source -->
          
        </div>

        

        
      </div><!-- change_column-method -->

    
      <div id="method-i-change_column_default" class="method-detail ">
        
        <div class="method-heading">
          <span class="method-name">change_column_default</span><span
            class="method-args">(table_name, column_name, default)</span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        

        <div class="method-description">
          
          <p>Sets a new default value for a column.</p>

<h5 id="method-i-change_column_default-label-Examples">Examples</h5>

<pre>change_column_default(:suppliers, :qualification, 'new')
change_column_default(:accounts, :authorized, 1)
change_column_default(:users, :email, nil)</pre>
          

          
          <div class="method-source-code" id="change_column_default-source">
            <pre><span class="ruby-comment"># File /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.7/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 298</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">change_column_default</span>(<span class="ruby-identifier">table_name</span>, <span class="ruby-identifier">column_name</span>, <span class="ruby-identifier">default</span>)
  <span class="ruby-identifier">raise</span> <span class="ruby-constant">NotImplementedError</span>, <span class="ruby-string">&quot;change_column_default is not implemented&quot;</span>
<span class="ruby-keyword">end</span></pre>
          </div><!-- change_column_default-source -->
          
        </div>

        

        
      </div><!-- change_column_default-method -->

    
      <div id="method-i-change_table" class="method-detail ">
        
        <div class="method-heading">
          <span class="method-name">change_table</span><span
            class="method-args">(table_name, options = {}) { |table| ... }</span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        

        <div class="method-description">
          
          <p>A block for changing columns in <code>table</code>.</p>

<h3 id="method-i-change_table-label-Example">Example</h3>

<pre class="ruby"><span class="ruby-comment"># change_table() yields a Table instance</span>
<span class="ruby-identifier">change_table</span>(:<span class="ruby-identifier">suppliers</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span>
  <span class="ruby-identifier">t</span>.<span class="ruby-identifier">column</span> :<span class="ruby-identifier">name</span>, :<span class="ruby-identifier">string</span>, :<span class="ruby-identifier">limit</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">60</span>
  <span class="ruby-comment"># Other column alterations here</span>
<span class="ruby-keyword">end</span>
</pre>

<p>The <code>options</code> hash can include the following keys:</p>
<dl class="rdoc-list label-list"><dt><code>:bulk</code>
<dd>
<p>Set this to true to make this a bulk alter query, such as ALTER TABLE
`users` ADD COLUMN age INT(11), ADD COLUMN birthdate DATETIME …</p>

<p>Defaults to false.</p>
</dd></dl>

<h5 id="method-i-change_table-label-Examples">Examples</h5>

<h6 id="method-i-change_table-label-Add+a+column">Add a column</h6>

<pre class="ruby"><span class="ruby-identifier">change_table</span>(:<span class="ruby-identifier">suppliers</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span>
  <span class="ruby-identifier">t</span>.<span class="ruby-identifier">column</span> :<span class="ruby-identifier">name</span>, :<span class="ruby-identifier">string</span>, :<span class="ruby-identifier">limit</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">60</span>
<span class="ruby-keyword">end</span>
</pre>

<h6 id="method-i-change_table-label-Add+2+integer+columns">Add 2 integer columns</h6>

<pre class="ruby"><span class="ruby-identifier">change_table</span>(:<span class="ruby-identifier">suppliers</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span>
  <span class="ruby-identifier">t</span>.<span class="ruby-identifier">integer</span> :<span class="ruby-identifier">width</span>, :<span class="ruby-identifier">height</span>, :<span class="ruby-identifier">null</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">false</span>, :<span class="ruby-identifier">default</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
<span class="ruby-keyword">end</span>
</pre>

<h6 id="method-i-change_table-label-Add+created_at%2Fupdated_at+columns">Add created_at/updated_at columns</h6>

<pre class="ruby"><span class="ruby-identifier">change_table</span>(:<span class="ruby-identifier">suppliers</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span>
  <span class="ruby-identifier">t</span>.<span class="ruby-identifier">timestamps</span>
<span class="ruby-keyword">end</span>
</pre>

<h6 id="method-i-change_table-label-Add+a+foreign+key+column">Add a foreign key column</h6>

<pre class="ruby"><span class="ruby-identifier">change_table</span>(:<span class="ruby-identifier">suppliers</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span>
  <span class="ruby-identifier">t</span>.<span class="ruby-identifier">references</span> :<span class="ruby-identifier">company</span>
<span class="ruby-keyword">end</span>
</pre>

<p>Creates a <code>company_id(integer)</code> column</p>

<h6 id="method-i-change_table-label-Add+a+polymorphic+foreign+key+column">Add a polymorphic foreign key column</h6>

<pre class="ruby"><span class="ruby-identifier">change_table</span>(:<span class="ruby-identifier">suppliers</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span>
  <span class="ruby-identifier">t</span>.<span class="ruby-identifier">belongs_to</span> :<span class="ruby-identifier">company</span>, :<span class="ruby-identifier">polymorphic</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>
<span class="ruby-keyword">end</span>
</pre>

<p>Creates <code>company_type(varchar)</code> and
<code>company_id(integer)</code> columns</p>

<h6 id="method-i-change_table-label-Remove+a+column">Remove a column</h6>

<pre class="ruby"><span class="ruby-identifier">change_table</span>(:<span class="ruby-identifier">suppliers</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span>
  <span class="ruby-identifier">t</span>.<span class="ruby-identifier">remove</span> :<span class="ruby-identifier">company</span>
<span class="ruby-keyword">end</span>
</pre>

<h6 id="method-i-change_table-label-Remove+several+columns">Remove several columns</h6>

<pre class="ruby"><span class="ruby-identifier">change_table</span>(:<span class="ruby-identifier">suppliers</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span>
  <span class="ruby-identifier">t</span>.<span class="ruby-identifier">remove</span> :<span class="ruby-identifier">company_id</span>
  <span class="ruby-identifier">t</span>.<span class="ruby-identifier">remove</span> :<span class="ruby-identifier">width</span>, :<span class="ruby-identifier">height</span>
<span class="ruby-keyword">end</span>
</pre>

<h6 id="method-i-change_table-label-Remove+an+index">Remove an index</h6>

<pre class="ruby"><span class="ruby-identifier">change_table</span>(:<span class="ruby-identifier">suppliers</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span>
  <span class="ruby-identifier">t</span>.<span class="ruby-identifier">remove_index</span> :<span class="ruby-identifier">company_id</span>
<span class="ruby-keyword">end</span>
</pre>

<p>See also <a href="Table.html">Table</a> for details on all of the various
column transformation</p>
          

          
          <div class="method-source-code" id="change_table-source">
            <pre><span class="ruby-comment"># File /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.7/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 237</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">change_table</span>(<span class="ruby-identifier">table_name</span>, <span class="ruby-identifier">options</span> = {})
  <span class="ruby-keyword">if</span> <span class="ruby-identifier">supports_bulk_alter?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:bulk</span>]
    <span class="ruby-identifier">recorder</span> = <span class="ruby-constant">ActiveRecord</span><span class="ruby-operator">::</span><span class="ruby-constant">Migration</span><span class="ruby-operator">::</span><span class="ruby-constant">CommandRecorder</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword">self</span>)
    <span class="ruby-keyword">yield</span> <span class="ruby-constant">Table</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">table_name</span>, <span class="ruby-identifier">recorder</span>)
    <span class="ruby-identifier">bulk_change_table</span>(<span class="ruby-identifier">table_name</span>, <span class="ruby-identifier">recorder</span>.<span class="ruby-identifier">commands</span>)
  <span class="ruby-keyword">else</span>
    <span class="ruby-keyword">yield</span> <span class="ruby-constant">Table</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">table_name</span>, <span class="ruby-keyword">self</span>)
  <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
          </div><!-- change_table-source -->
          
        </div>

        

        
      </div><!-- change_table-method -->

    
      <div id="method-i-column_exists-3F" class="method-detail ">
        
        <div class="method-heading">
          <span class="method-name">column_exists?</span><span
            class="method-args">(table_name, column_name, type = nil, options = {})</span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        

        <div class="method-description">
          
          <p>Checks to see if a column exists in a given table.</p>

<h3 id="method-i-column_exists-3F-label-Examples">Examples</h3>

<pre class="ruby"><span class="ruby-comment"># Check a column exists</span>
<span class="ruby-identifier">column_exists?</span>(:<span class="ruby-identifier">suppliers</span>, :<span class="ruby-identifier">name</span>)

<span class="ruby-comment"># Check a column exists of a particular type</span>
<span class="ruby-identifier">column_exists?</span>(:<span class="ruby-identifier">suppliers</span>, :<span class="ruby-identifier">name</span>, :<span class="ruby-identifier">string</span>)

<span class="ruby-comment"># Check a column exists with a specific definition</span>
<span class="ruby-identifier">column_exists?</span>(:<span class="ruby-identifier">suppliers</span>, :<span class="ruby-identifier">name</span>, :<span class="ruby-identifier">string</span>, :<span class="ruby-identifier">limit</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">100</span>)
</pre>
          

          
          <div class="method-source-code" id="column_exists-3F-source">
            <pre><span class="ruby-comment"># File /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.7/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 69</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">column_exists?</span>(<span class="ruby-identifier">table_name</span>, <span class="ruby-identifier">column_name</span>, <span class="ruby-identifier">type</span> = <span class="ruby-keyword">nil</span>, <span class="ruby-identifier">options</span> = {})
  <span class="ruby-identifier">columns</span>(<span class="ruby-identifier">table_name</span>).<span class="ruby-identifier">any?</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">column_name</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">&amp;&amp;</span>
                                (<span class="ruby-operator">!</span><span class="ruby-identifier">type</span>                 <span class="ruby-operator">||</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">type</span>) <span class="ruby-operator">&amp;&amp;</span>
                                (<span class="ruby-operator">!</span><span class="ruby-identifier">options</span>[<span class="ruby-value">:limit</span>]      <span class="ruby-operator">||</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">limit</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:limit</span>]) <span class="ruby-operator">&amp;&amp;</span>
                                (<span class="ruby-operator">!</span><span class="ruby-identifier">options</span>[<span class="ruby-value">:precision</span>]  <span class="ruby-operator">||</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">precision</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:precision</span>]) <span class="ruby-operator">&amp;&amp;</span>
                                (<span class="ruby-operator">!</span><span class="ruby-identifier">options</span>[<span class="ruby-value">:scale</span>]      <span class="ruby-operator">||</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">scale</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:scale</span>]) }
<span class="ruby-keyword">end</span></pre>
          </div><!-- column_exists-3F-source -->
          
        </div>

        

        
      </div><!-- column_exists-3F-method -->

    
      <div id="method-i-columns" class="method-detail ">
        
        <div class="method-heading">
          <span class="method-name">columns</span><span
            class="method-args">(table_name, name = nil)</span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        

        <div class="method-description">
          
          <p>Returns an array of Column objects for the table specified by
<code>table_name</code>. See the concrete implementation for details on the
expected parameter values.</p>
          

          
          <div class="method-source-code" id="columns-source">
            <pre><span class="ruby-comment"># File /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.7/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 56</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">columns</span>(<span class="ruby-identifier">table_name</span>, <span class="ruby-identifier">name</span> = <span class="ruby-keyword">nil</span>) <span class="ruby-keyword">end</span></pre>
          </div><!-- columns-source -->
          
        </div>

        

        
      </div><!-- columns-method -->

    
      <div id="method-i-create_table" class="method-detail ">
        
        <div class="method-heading">
          <span class="method-name">create_table</span><span
            class="method-args">(table_name, options = {}) { |td| ... }</span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        

        <div class="method-description">
          
          <p>Creates a new table with the name <code>table_name</code>.
<code>table_name</code> may either be a <a
href="../../String.html">String</a> or a <a
href="../../Symbol.html">Symbol</a>.</p>

<p>There are two ways to work with <code>create_table</code>. You can use the
block form or the regular form, like this:</p>

<h3 id="method-i-create_table-label-Block+form">Block form</h3>

<pre class="ruby"><span class="ruby-comment"># create_table() passes a TableDefinition object to the block.</span>
<span class="ruby-comment"># This form will not only create the table, but also columns for the</span>
<span class="ruby-comment"># table.</span>

<span class="ruby-identifier">create_table</span>(:<span class="ruby-identifier">suppliers</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span>
  <span class="ruby-identifier">t</span>.<span class="ruby-identifier">column</span> :<span class="ruby-identifier">name</span>, :<span class="ruby-identifier">string</span>, :<span class="ruby-identifier">limit</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">60</span>
  <span class="ruby-comment"># Other fields here</span>
<span class="ruby-keyword">end</span>
</pre>

<h3 id="method-i-create_table-label-Block+form%2C+with+shorthand">Block form, with shorthand</h3>

<pre class="ruby"><span class="ruby-comment"># You can also use the column types as method calls, rather than calling the column method.</span>
<span class="ruby-identifier">create_table</span>(:<span class="ruby-identifier">suppliers</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span>
  <span class="ruby-identifier">t</span>.<span class="ruby-identifier">string</span> :<span class="ruby-identifier">name</span>, :<span class="ruby-identifier">limit</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">60</span>
  <span class="ruby-comment"># Other fields here</span>
<span class="ruby-keyword">end</span>
</pre>

<h3 id="method-i-create_table-label-Regular+form">Regular form</h3>

<pre class="ruby"><span class="ruby-comment"># Creates a table called 'suppliers' with no columns.</span>
<span class="ruby-identifier">create_table</span>(:<span class="ruby-identifier">suppliers</span>)
<span class="ruby-comment"># Add a column to 'suppliers'.</span>
<span class="ruby-identifier">add_column</span>(:<span class="ruby-identifier">suppliers</span>, :<span class="ruby-identifier">name</span>, :<span class="ruby-identifier">string</span>, {:<span class="ruby-identifier">limit</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">60</span>})
</pre>

<p>The <code>options</code> hash can include the following keys:</p>
<dl class="rdoc-list label-list"><dt><code>:id</code>
<dd>
<p>Whether to automatically add a primary key column. Defaults to true. Join
tables for <code>has_and_belongs_to_many</code> should set it to false.</p>
</dd><dt><code>:primary_key</code>
<dd>
<p>The name of the primary key, if one is to be added automatically. Defaults
to <code>id</code>. If <code>:id</code> is false this option is ignored.</p>

<p>Also note that this just sets the primary key in the table. You
additionally need to configure the primary key in the model via
<code>self.primary_key=</code>. Models do NOT auto-detect the primary key
from their table definition.</p>
</dd><dt><code>:options</code>
<dd>
<p>Any extra options you want appended to the table definition.</p>
</dd><dt><code>:temporary</code>
<dd>
<p>Make a temporary table.</p>
</dd><dt><code>:force</code>
<dd>
<p>Set to true to drop the table before creating it. Defaults to false.</p>
</dd></dl>

<h5 id="method-i-create_table-label-Examples">Examples</h5>

<h6 id="method-i-create_table-label-Add+a+backend+specific+option+to+the+generated+SQL+%28MySQL%29">Add a backend specific option to the generated SQL (MySQL)</h6>

<pre class="ruby"><span class="ruby-identifier">create_table</span>(:<span class="ruby-identifier">suppliers</span>, :<span class="ruby-identifier">options</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">'ENGINE=InnoDB DEFAULT CHARSET=utf8'</span>)
</pre>

<p>generates:</p>

<pre>CREATE TABLE suppliers (
  id int(11) DEFAULT NULL auto_increment PRIMARY KEY
) ENGINE=InnoDB DEFAULT CHARSET=utf8</pre>

<h6 id="method-i-create_table-label-Rename+the+primary+key+column">Rename the primary key column</h6>

<pre class="ruby"><span class="ruby-identifier">create_table</span>(:<span class="ruby-identifier">objects</span>, :<span class="ruby-identifier">primary_key</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">'guid'</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span>
  <span class="ruby-identifier">t</span>.<span class="ruby-identifier">column</span> :<span class="ruby-identifier">name</span>, :<span class="ruby-identifier">string</span>, :<span class="ruby-identifier">limit</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">80</span>
<span class="ruby-keyword">end</span>
</pre>

<p>generates:</p>

<pre>CREATE TABLE objects (
  guid int(11) DEFAULT NULL auto_increment PRIMARY KEY,
  name varchar(80)
)</pre>

<h6 id="method-i-create_table-label-Do+not+add+a+primary+key+column">Do not add a primary key column</h6>

<pre class="ruby"><span class="ruby-identifier">create_table</span>(:<span class="ruby-identifier">categories_suppliers</span>, :<span class="ruby-identifier">id</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">false</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span>
  <span class="ruby-identifier">t</span>.<span class="ruby-identifier">column</span> :<span class="ruby-identifier">category_id</span>, :<span class="ruby-identifier">integer</span>
  <span class="ruby-identifier">t</span>.<span class="ruby-identifier">column</span> :<span class="ruby-identifier">supplier_id</span>, :<span class="ruby-identifier">integer</span>
<span class="ruby-keyword">end</span>
</pre>

<p>generates:</p>

<pre>CREATE TABLE categories_suppliers (
  category_id int,
  supplier_id int
)</pre>

<p>See also <a
href="TableDefinition.html#method-i-column">ActiveRecord::ConnectionAdapters::TableDefinition#column</a>
for details on how to create columns.</p>
          

          
          <div class="method-source-code" id="create_table-source">
            <pre><span class="ruby-comment"># File /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.7/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 156</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">create_table</span>(<span class="ruby-identifier">table_name</span>, <span class="ruby-identifier">options</span> = {})
  <span class="ruby-identifier">td</span> = <span class="ruby-identifier">table_definition</span>
  <span class="ruby-identifier">td</span>.<span class="ruby-identifier">primary_key</span>(<span class="ruby-identifier">options</span>[<span class="ruby-value">:primary_key</span>] <span class="ruby-operator">||</span> <span class="ruby-constant">Base</span>.<span class="ruby-identifier">get_primary_key</span>(<span class="ruby-identifier">table_name</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">singularize</span>)) <span class="ruby-keyword">unless</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:id</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword">false</span>

  <span class="ruby-keyword">yield</span> <span class="ruby-identifier">td</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>

  <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:force</span>] <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">table_exists?</span>(<span class="ruby-identifier">table_name</span>)
    <span class="ruby-identifier">drop_table</span>(<span class="ruby-identifier">table_name</span>, <span class="ruby-identifier">options</span>)
  <span class="ruby-keyword">end</span>

  <span class="ruby-identifier">create_sql</span> = <span class="ruby-node">&quot;CREATE#{' TEMPORARY' if options[:temporary]} TABLE &quot;</span>
  <span class="ruby-identifier">create_sql</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{quote_table_name(table_name)} (&quot;</span>
  <span class="ruby-identifier">create_sql</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">td</span>.<span class="ruby-identifier">to_sql</span>
  <span class="ruby-identifier">create_sql</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;) #{options[:options]}&quot;</span>
  <span class="ruby-identifier">execute</span> <span class="ruby-identifier">create_sql</span>
<span class="ruby-keyword">end</span></pre>
          </div><!-- create_table-source -->
          
        </div>

        

        
      </div><!-- create_table-method -->

    
      <div id="method-i-distinct" class="method-detail ">
        
        <div class="method-heading">
          <span class="method-name">distinct</span><span
            class="method-args">(columns, order_by)</span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        

        <div class="method-description">
          
          <p>SELECT DISTINCT clause for a given set of columns and a given ORDER BY
clause. Both PostgreSQL and Oracle overrides this for custom DISTINCT
syntax.</p>

<pre>distinct(&quot;posts.id&quot;, &quot;posts.created_at desc&quot;)</pre>
          

          
          <div class="method-source-code" id="distinct-source">
            <pre><span class="ruby-comment"># File /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.7/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 511</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">distinct</span>(<span class="ruby-identifier">columns</span>, <span class="ruby-identifier">order_by</span>)
  <span class="ruby-node">&quot;DISTINCT #{columns}&quot;</span>
<span class="ruby-keyword">end</span></pre>
          </div><!-- distinct-source -->
          
        </div>

        

        
      </div><!-- distinct-method -->

    
      <div id="method-i-drop_table" class="method-detail ">
        
        <div class="method-heading">
          <span class="method-name">drop_table</span><span
            class="method-args">(table_name, options = {})</span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        

        <div class="method-description">
          
          <p>Drops a table from the database.</p>
          

          
          <div class="method-source-code" id="drop_table-source">
            <pre><span class="ruby-comment"># File /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.7/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 255</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">drop_table</span>(<span class="ruby-identifier">table_name</span>, <span class="ruby-identifier">options</span> = {})
  <span class="ruby-identifier">execute</span> <span class="ruby-node">&quot;DROP TABLE #{quote_table_name(table_name)}&quot;</span>
<span class="ruby-keyword">end</span></pre>
          </div><!-- drop_table-source -->
          
        </div>

        

        
      </div><!-- drop_table-method -->

    
      <div id="method-i-index_exists-3F" class="method-detail ">
        
        <div class="method-heading">
          <span class="method-name">index_exists?</span><span
            class="method-args">(table_name, column_name, options = {})</span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        

        <div class="method-description">
          
          <p>Checks to see if an index exists on a table for a given index definition.</p>

<h3 id="method-i-index_exists-3F-label-Examples">Examples</h3>

<pre class="ruby"><span class="ruby-comment"># Check an index exists</span>
<span class="ruby-identifier">index_exists?</span>(:<span class="ruby-identifier">suppliers</span>, :<span class="ruby-identifier">company_id</span>)

<span class="ruby-comment"># Check an index on multiple columns exists</span>
<span class="ruby-identifier">index_exists?</span>(:<span class="ruby-identifier">suppliers</span>, [:<span class="ruby-identifier">company_id</span>, :<span class="ruby-identifier">company_type</span>])

<span class="ruby-comment"># Check a unique index exists</span>
<span class="ruby-identifier">index_exists?</span>(:<span class="ruby-identifier">suppliers</span>, :<span class="ruby-identifier">company_id</span>, :<span class="ruby-identifier">unique</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>)

<span class="ruby-comment"># Check an index with a custom name exists</span>
<span class="ruby-identifier">index_exists?</span>(:<span class="ruby-identifier">suppliers</span>, :<span class="ruby-identifier">company_id</span>, :<span class="ruby-identifier">name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;idx_company_id&quot;</span>
</pre>
          

          
          <div class="method-source-code" id="index_exists-3F-source">
            <pre><span class="ruby-comment"># File /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.7/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 44</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">index_exists?</span>(<span class="ruby-identifier">table_name</span>, <span class="ruby-identifier">column_name</span>, <span class="ruby-identifier">options</span> = {})
  <span class="ruby-identifier">column_names</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">wrap</span>(<span class="ruby-identifier">column_name</span>)
  <span class="ruby-identifier">index_name</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-value">:name</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:name</span>].<span class="ruby-identifier">to_s</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">index_name</span>(<span class="ruby-identifier">table_name</span>, <span class="ruby-value">:column</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">column_names</span>)
  <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:unique</span>]
    <span class="ruby-identifier">indexes</span>(<span class="ruby-identifier">table_name</span>).<span class="ruby-identifier">any?</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">i</span>.<span class="ruby-identifier">unique</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">i</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">index_name</span> }
  <span class="ruby-keyword">else</span>
    <span class="ruby-identifier">indexes</span>(<span class="ruby-identifier">table_name</span>).<span class="ruby-identifier">any?</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">i</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">index_name</span> }
  <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
          </div><!-- index_exists-3F-source -->
          
        </div>

        

        
      </div><!-- index_exists-3F-method -->

    
      <div id="method-i-index_name_exists-3F" class="method-detail ">
        
        <div class="method-heading">
          <span class="method-name">index_name_exists?</span><span
            class="method-args">(table_name, index_name, default)</span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        

        <div class="method-description">
          
          <p>Verify the existence of an index with a given name.</p>

<p>The default argument is returned if the underlying implementation does not
define the indexes method, as there’s no way to determine the correct
answer in that case.</p>
          

          
          <div class="method-source-code" id="index_name_exists-3F-source">
            <pre><span class="ruby-comment"># File /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.7/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 403</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">index_name_exists?</span>(<span class="ruby-identifier">table_name</span>, <span class="ruby-identifier">index_name</span>, <span class="ruby-identifier">default</span>)
  <span class="ruby-keyword">return</span> <span class="ruby-identifier">default</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:indexes</span>)
  <span class="ruby-identifier">index_name</span> = <span class="ruby-identifier">index_name</span>.<span class="ruby-identifier">to_s</span>
  <span class="ruby-identifier">indexes</span>(<span class="ruby-identifier">table_name</span>).<span class="ruby-identifier">detect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">i</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">index_name</span> }
<span class="ruby-keyword">end</span></pre>
          </div><!-- index_name_exists-3F-source -->
          
        </div>

        

        
      </div><!-- index_name_exists-3F-method -->

    
      <div id="method-i-initialize_schema_migrations_table" class="method-detail ">
        
        <div class="method-heading">
          <span class="method-name">initialize_schema_migrations_table</span><span
            class="method-args">()</span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        

        <div class="method-description">
          
          <p>Should not be called normally, but this operation is non-destructive. The
migrations module handles this automatically.</p>
          

          
          <div class="method-source-code" id="initialize_schema_migrations_table-source">
            <pre><span class="ruby-comment"># File /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.7/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 422</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize_schema_migrations_table</span>
  <span class="ruby-identifier">sm_table</span> = <span class="ruby-constant">ActiveRecord</span><span class="ruby-operator">::</span><span class="ruby-constant">Migrator</span>.<span class="ruby-identifier">schema_migrations_table_name</span>

  <span class="ruby-keyword">unless</span> <span class="ruby-identifier">table_exists?</span>(<span class="ruby-identifier">sm_table</span>)
    <span class="ruby-identifier">create_table</span>(<span class="ruby-identifier">sm_table</span>, <span class="ruby-value">:id</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">false</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">schema_migrations_table</span><span class="ruby-operator">|</span>
      <span class="ruby-identifier">schema_migrations_table</span>.<span class="ruby-identifier">column</span> <span class="ruby-value">:version</span>, <span class="ruby-value">:string</span>, <span class="ruby-value">:null</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">false</span>
    <span class="ruby-keyword">end</span>
    <span class="ruby-identifier">add_index</span> <span class="ruby-identifier">sm_table</span>, <span class="ruby-value">:version</span>, <span class="ruby-value">:unique</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>,
      <span class="ruby-value">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;#{Base.table_name_prefix}unique_schema_migrations#{Base.table_name_suffix}&quot;</span>

    <span class="ruby-comment"># Backwards-compatibility: if we find schema_info, assume we've</span>
    <span class="ruby-comment"># migrated up to that point:</span>
    <span class="ruby-identifier">si_table</span> = <span class="ruby-constant">Base</span>.<span class="ruby-identifier">table_name_prefix</span> <span class="ruby-operator">+</span> <span class="ruby-string">'schema_info'</span> <span class="ruby-operator">+</span> <span class="ruby-constant">Base</span>.<span class="ruby-identifier">table_name_suffix</span>

    <span class="ruby-keyword">if</span> <span class="ruby-identifier">table_exists?</span>(<span class="ruby-identifier">si_table</span>)
      <span class="ruby-constant">ActiveSupport</span><span class="ruby-operator">::</span><span class="ruby-constant">Deprecation</span>.<span class="ruby-identifier">warn</span> <span class="ruby-node">&quot;Usage of the schema table `#{si_table}` is deprecated. Please switch to using `schema_migrations` table&quot;</span>

      <span class="ruby-identifier">old_version</span> = <span class="ruby-identifier">select_value</span>(<span class="ruby-node">&quot;SELECT version FROM #{quote_table_name(si_table)}&quot;</span>).<span class="ruby-identifier">to_i</span>
      <span class="ruby-identifier">assume_migrated_upto_version</span>(<span class="ruby-identifier">old_version</span>)
      <span class="ruby-identifier">drop_table</span>(<span class="ruby-identifier">si_table</span>)
    <span class="ruby-keyword">end</span>
  <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
          </div><!-- initialize_schema_migrations_table-source -->
          
        </div>

        

        
      </div><!-- initialize_schema_migrations_table-method -->

    
      <div id="method-i-native_database_types" class="method-detail ">
        
        <div class="method-heading">
          <span class="method-name">native_database_types</span><span
            class="method-args">()</span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        

        <div class="method-description">
          
          <p>Returns a <a href="../../Hash.html">Hash</a> of mappings from the abstract
data types to the native database types. See <a
href="TableDefinition.html#method-i-column">ActiveRecord::ConnectionAdapters::TableDefinition#column</a>
for details on the recognized abstract data types.</p>
          

          
          <div class="method-source-code" id="native_database_types-source">
            <pre><span class="ruby-comment"># File /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.7/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 10</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">native_database_types</span>
  {}
<span class="ruby-keyword">end</span></pre>
          </div><!-- native_database_types-source -->
          
        </div>

        

        
      </div><!-- native_database_types-method -->

    
      <div id="method-i-remove_column" class="method-detail ">
        
        <div class="method-heading">
          <span class="method-name">remove_column</span><span
            class="method-args">(table_name, *column_names)</span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        

        <div class="method-description">
          
          <p>Removes the column(s) from the table definition.</p>

<h5 id="method-i-remove_column-label-Examples">Examples</h5>

<pre>remove_column(:suppliers, :qualification)
remove_columns(:suppliers, :qualification, :experience)</pre>
          

          
          <div class="method-source-code" id="remove_column-source">
            <pre><span class="ruby-comment"># File /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.7/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 271</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">remove_column</span>(<span class="ruby-identifier">table_name</span>, *<span class="ruby-identifier">column_names</span>)
  <span class="ruby-keyword">if</span> <span class="ruby-identifier">column_names</span>.<span class="ruby-identifier">flatten!</span>
    <span class="ruby-identifier">message</span> = <span class="ruby-string">'Passing array to remove_columns is deprecated, please use '</span> <span class="ruby-operator">+</span>
              <span class="ruby-string">'multiple arguments, like: `remove_columns(:posts, :foo, :bar)`'</span>
    <span class="ruby-constant">ActiveSupport</span><span class="ruby-operator">::</span><span class="ruby-constant">Deprecation</span>.<span class="ruby-identifier">warn</span> <span class="ruby-identifier">message</span>, <span class="ruby-identifier">caller</span>
  <span class="ruby-keyword">end</span>

  <span class="ruby-identifier">columns_for_remove</span>(<span class="ruby-identifier">table_name</span>, *<span class="ruby-identifier">column_names</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">column_name</span><span class="ruby-operator">|</span>
    <span class="ruby-identifier">execute</span> <span class="ruby-node">&quot;ALTER TABLE #{quote_table_name(table_name)} DROP #{column_name}&quot;</span>
  <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
          </div><!-- remove_column-source -->
          
        </div>

        
        <div class="aliases">
          Also aliased as: <a href="SchemaStatements.html#method-i-remove_columns">remove_columns</a>
        </div>
        

        
      </div><!-- remove_column-method -->

    
      <div id="method-i-remove_columns" class="method-detail method-alias">
        
        <div class="method-heading">
          <span class="method-name">remove_columns</span><span
            class="method-args">(table_name, *column_names)</span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        

        <div class="method-description">
          
          
          

          
        </div>

        

        
        <div class="aliases">
          Alias for: <a href="SchemaStatements.html#method-i-remove_column">remove_column</a>
        </div>
        
      </div><!-- remove_columns-method -->

    
      <div id="method-i-remove_index" class="method-detail ">
        
        <div class="method-heading">
          <span class="method-name">remove_index</span><span
            class="method-args">(table_name, options = {})</span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        

        <div class="method-description">
          
          <p>Remove the given index from the table.</p>

<p>Remove the index_accounts_on_column in the accounts table.</p>

<pre>remove_index :accounts, :column</pre>

<p>Remove the index named index_accounts_on_branch_id in the accounts table.</p>

<pre class="ruby"><span class="ruby-identifier">remove_index</span> :<span class="ruby-identifier">accounts</span>, :<span class="ruby-identifier">column</span> =<span class="ruby-operator">&gt;</span> :<span class="ruby-identifier">branch_id</span>
</pre>

<p>Remove the index named index_accounts_on_branch_id_and_party_id in the
accounts table.</p>

<pre class="ruby"><span class="ruby-identifier">remove_index</span> :<span class="ruby-identifier">accounts</span>, :<span class="ruby-identifier">column</span> =<span class="ruby-operator">&gt;</span> [:<span class="ruby-identifier">branch_id</span>, :<span class="ruby-identifier">party_id</span>]
</pre>

<p>Remove the index named by_branch_party in the accounts table.</p>

<pre class="ruby"><span class="ruby-identifier">remove_index</span> :<span class="ruby-identifier">accounts</span>, :<span class="ruby-identifier">name</span> =<span class="ruby-operator">&gt;</span> :<span class="ruby-identifier">by_branch_party</span>
</pre>
          

          
          <div class="method-source-code" id="remove_index-source">
            <pre><span class="ruby-comment"># File /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.7/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 365</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">remove_index</span>(<span class="ruby-identifier">table_name</span>, <span class="ruby-identifier">options</span> = {})
  <span class="ruby-identifier">remove_index!</span>(<span class="ruby-identifier">table_name</span>, <span class="ruby-identifier">index_name_for_remove</span>(<span class="ruby-identifier">table_name</span>, <span class="ruby-identifier">options</span>))
<span class="ruby-keyword">end</span></pre>
          </div><!-- remove_index-source -->
          
        </div>

        

        
      </div><!-- remove_index-method -->

    
      <div id="method-i-remove_timestamps" class="method-detail ">
        
        <div class="method-heading">
          <span class="method-name">remove_timestamps</span><span
            class="method-args">(table_name)</span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        

        <div class="method-description">
          
          <p>Removes the timestamp columns (created_at and updated_at) from the table
definition.</p>

<h5 id="method-i-remove_timestamps-label-Examples">Examples</h5>

<pre>remove_timestamps(:suppliers)</pre>
          

          
          <div class="method-source-code" id="remove_timestamps-source">
            <pre><span class="ruby-comment"># File /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.7/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 526</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">remove_timestamps</span>(<span class="ruby-identifier">table_name</span>)
  <span class="ruby-identifier">remove_column</span> <span class="ruby-identifier">table_name</span>, <span class="ruby-value">:updated_at</span>
  <span class="ruby-identifier">remove_column</span> <span class="ruby-identifier">table_name</span>, <span class="ruby-value">:created_at</span>
<span class="ruby-keyword">end</span></pre>
          </div><!-- remove_timestamps-source -->
          
        </div>

        

        
      </div><!-- remove_timestamps-method -->

    
      <div id="method-i-rename_column" class="method-detail ">
        
        <div class="method-heading">
          <span class="method-name">rename_column</span><span
            class="method-args">(table_name, column_name, new_column_name)</span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        

        <div class="method-description">
          
          <p>Renames a column.</p>

<h5 id="method-i-rename_column-label-Example">Example</h5>

<pre>rename_column(:suppliers, :description, :name)</pre>
          

          
          <div class="method-source-code" id="rename_column-source">
            <pre><span class="ruby-comment"># File /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.7/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 305</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">rename_column</span>(<span class="ruby-identifier">table_name</span>, <span class="ruby-identifier">column_name</span>, <span class="ruby-identifier">new_column_name</span>)
  <span class="ruby-identifier">raise</span> <span class="ruby-constant">NotImplementedError</span>, <span class="ruby-string">&quot;rename_column is not implemented&quot;</span>
<span class="ruby-keyword">end</span></pre>
          </div><!-- rename_column-source -->
          
        </div>

        

        
      </div><!-- rename_column-method -->

    
      <div id="method-i-rename_index" class="method-detail ">
        
        <div class="method-heading">
          <span class="method-name">rename_index</span><span
            class="method-args">(table_name, old_name, new_name)</span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        

        <div class="method-description">
          
          <p>Rename an index.</p>

<p>Rename the index_people_on_last_name index to index_users_on_last_name</p>

<pre>rename_index :people, 'index_people_on_last_name', 'index_users_on_last_name'</pre>
          

          
          <div class="method-source-code" id="rename_index-source">
            <pre><span class="ruby-comment"># File /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.7/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 377</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">rename_index</span>(<span class="ruby-identifier">table_name</span>, <span class="ruby-identifier">old_name</span>, <span class="ruby-identifier">new_name</span>)
  <span class="ruby-comment"># this is a naive implementation; some DBs may support this more efficiently (Postgres, for instance)</span>
  <span class="ruby-identifier">old_index_def</span> = <span class="ruby-identifier">indexes</span>(<span class="ruby-identifier">table_name</span>).<span class="ruby-identifier">detect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">i</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">old_name</span> }
  <span class="ruby-keyword">return</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">old_index_def</span>
  <span class="ruby-identifier">remove_index</span>(<span class="ruby-identifier">table_name</span>, <span class="ruby-value">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">old_name</span>)
  <span class="ruby-identifier">add_index</span>(<span class="ruby-identifier">table_name</span>, <span class="ruby-identifier">old_index_def</span>.<span class="ruby-identifier">columns</span>, <span class="ruby-value">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">new_name</span>, <span class="ruby-value">:unique</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">old_index_def</span>.<span class="ruby-identifier">unique</span>)
<span class="ruby-keyword">end</span></pre>
          </div><!-- rename_index-source -->
          
        </div>

        

        
      </div><!-- rename_index-method -->

    
      <div id="method-i-rename_table" class="method-detail ">
        
        <div class="method-heading">
          <span class="method-name">rename_table</span><span
            class="method-args">(table_name, new_name)</span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        

        <div class="method-description">
          
          <p>Renames a table.</p>

<h5 id="method-i-rename_table-label-Example">Example</h5>

<pre>rename_table('octopuses', 'octopi')</pre>
          

          
          <div class="method-source-code" id="rename_table-source">
            <pre><span class="ruby-comment"># File /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.7/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 250</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">rename_table</span>(<span class="ruby-identifier">table_name</span>, <span class="ruby-identifier">new_name</span>)
  <span class="ruby-identifier">raise</span> <span class="ruby-constant">NotImplementedError</span>, <span class="ruby-string">&quot;rename_table is not implemented&quot;</span>
<span class="ruby-keyword">end</span></pre>
          </div><!-- rename_table-source -->
          
        </div>

        

        
      </div><!-- rename_table-method -->

    
      <div id="method-i-structure_dump" class="method-detail ">
        
        <div class="method-heading">
          <span class="method-name">structure_dump</span><span
            class="method-args">()</span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        

        <div class="method-description">
          
          <p>Returns a string of <code>CREATE TABLE</code> SQL statement(s) for
recreating the entire structure of the database.</p>
          

          
          <div class="method-source-code" id="structure_dump-source">
            <pre><span class="ruby-comment"># File /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.7/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 411</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">structure_dump</span>
<span class="ruby-keyword">end</span></pre>
          </div><!-- structure_dump-source -->
          
        </div>

        

        
      </div><!-- structure_dump-method -->

    
      <div id="method-i-table_alias_for" class="method-detail ">
        
        <div class="method-heading">
          <span class="method-name">table_alias_for</span><span
            class="method-args">(table_name)</span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        

        <div class="method-description">
          
          <p>Truncates a table alias according to the limits of the current adapter.</p>
          

          
          <div class="method-source-code" id="table_alias_for-source">
            <pre><span class="ruby-comment"># File /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.7/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 15</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">table_alias_for</span>(<span class="ruby-identifier">table_name</span>)
  <span class="ruby-identifier">table_name</span>[<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-identifier">table_alias_length</span>].<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp">%r\./</span>, <span class="ruby-string">'_'</span>)
<span class="ruby-keyword">end</span></pre>
          </div><!-- table_alias_for-source -->
          
        </div>

        

        
      </div><!-- table_alias_for-method -->

    
      <div id="method-i-table_exists-3F" class="method-detail ">
        
        <div class="method-heading">
          <span class="method-name">table_exists?</span><span
            class="method-args">(table_name)</span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        

        <div class="method-description">
          
          <p>Checks to see if the table <code>table_name</code> exists on the database.</p>

<h3 id="method-i-table_exists-3F-label-Example">Example</h3>

<pre>table_exists?(:developers)</pre>
          

          
          <div class="method-source-code" id="table_exists-3F-source">
            <pre><span class="ruby-comment"># File /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.7/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 23</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">table_exists?</span>(<span class="ruby-identifier">table_name</span>)
  <span class="ruby-identifier">tables</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">table_name</span>.<span class="ruby-identifier">to_s</span>)
<span class="ruby-keyword">end</span></pre>
          </div><!-- table_exists-3F-source -->
          
        </div>

        

        
      </div><!-- table_exists-3F-method -->

    
    </section><!-- public-instance-method-details -->
  
     <section id="protected-instance-5Buntitled-5D-method-details" class="method-section section">
      <h3 class="section-header">Protected Instance Methods</h3>

    
      <div id="method-i-add_index_options" class="method-detail ">
        
        <div class="method-heading">
          <span class="method-name">add_index_options</span><span
            class="method-args">(table_name, column_name, options = {})</span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        

        <div class="method-description">
          
          
          

          
          <div class="method-source-code" id="add_index_options-source">
            <pre><span class="ruby-comment"># File /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.7/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 561</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">add_index_options</span>(<span class="ruby-identifier">table_name</span>, <span class="ruby-identifier">column_name</span>, <span class="ruby-identifier">options</span> = {})
  <span class="ruby-identifier">column_names</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">wrap</span>(<span class="ruby-identifier">column_name</span>)
  <span class="ruby-identifier">index_name</span>   = <span class="ruby-identifier">index_name</span>(<span class="ruby-identifier">table_name</span>, <span class="ruby-value">:column</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">column_names</span>)

  <span class="ruby-keyword">if</span> <span class="ruby-constant">Hash</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">options</span> <span class="ruby-comment"># legacy support, since this param was a string</span>
    <span class="ruby-identifier">index_type</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:unique</span>] <span class="ruby-operator">?</span> <span class="ruby-string">&quot;UNIQUE&quot;</span> <span class="ruby-operator">:</span> <span class="ruby-string">&quot;&quot;</span>
    <span class="ruby-identifier">index_name</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:name</span>].<span class="ruby-identifier">to_s</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-value">:name</span>)
  <span class="ruby-keyword">else</span>
    <span class="ruby-identifier">index_type</span> = <span class="ruby-identifier">options</span>
  <span class="ruby-keyword">end</span>

  <span class="ruby-keyword">if</span> <span class="ruby-identifier">index_name</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">index_name_length</span>
    <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Index name '#{index_name}' on table '#{table_name}' is too long; the limit is #{index_name_length} characters&quot;</span>
  <span class="ruby-keyword">end</span>
  <span class="ruby-keyword">if</span> <span class="ruby-identifier">index_name_exists?</span>(<span class="ruby-identifier">table_name</span>, <span class="ruby-identifier">index_name</span>, <span class="ruby-keyword">false</span>)
    <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Index name '#{index_name}' on table '#{table_name}' already exists&quot;</span>
  <span class="ruby-keyword">end</span>
  <span class="ruby-identifier">index_columns</span> = <span class="ruby-identifier">quoted_columns_for_index</span>(<span class="ruby-identifier">column_names</span>, <span class="ruby-identifier">options</span>).<span class="ruby-identifier">join</span>(<span class="ruby-string">&quot;, &quot;</span>)

  [<span class="ruby-identifier">index_name</span>, <span class="ruby-identifier">index_type</span>, <span class="ruby-identifier">index_columns</span>]
<span class="ruby-keyword">end</span></pre>
          </div><!-- add_index_options-source -->
          
        </div>

        

        
      </div><!-- add_index_options-method -->

    
      <div id="method-i-add_index_sort_order" class="method-detail ">
        
        <div class="method-heading">
          <span class="method-name">add_index_sort_order</span><span
            class="method-args">(option_strings, column_names, options = {})</span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        

        <div class="method-description">
          
          
          

          
          <div class="method-source-code" id="add_index_sort_order-source">
            <pre><span class="ruby-comment"># File /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.7/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 532</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">add_index_sort_order</span>(<span class="ruby-identifier">option_strings</span>, <span class="ruby-identifier">column_names</span>, <span class="ruby-identifier">options</span> = {})
  <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">order</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value">:order</span>]
    <span class="ruby-keyword">case</span> <span class="ruby-identifier">order</span>
    <span class="ruby-keyword">when</span> <span class="ruby-constant">Hash</span>
      <span class="ruby-identifier">column_names</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">name</span><span class="ruby-operator">|</span> <span class="ruby-identifier">option_strings</span>[<span class="ruby-identifier">name</span>] <span class="ruby-operator">+=</span> <span class="ruby-node">&quot; #{order[name].to_s.upcase}&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">order</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">name</span>)}
    <span class="ruby-keyword">when</span> <span class="ruby-constant">String</span>
      <span class="ruby-identifier">column_names</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">name</span><span class="ruby-operator">|</span> <span class="ruby-identifier">option_strings</span>[<span class="ruby-identifier">name</span>] <span class="ruby-operator">+=</span> <span class="ruby-node">&quot; #{order.upcase}&quot;</span>}
    <span class="ruby-keyword">end</span>
  <span class="ruby-keyword">end</span>

  <span class="ruby-keyword">return</span> <span class="ruby-identifier">option_strings</span>
<span class="ruby-keyword">end</span></pre>
          </div><!-- add_index_sort_order-source -->
          
        </div>

        

        
      </div><!-- add_index_sort_order-method -->

    
      <div id="method-i-columns_for_remove" class="method-detail ">
        
        <div class="method-heading">
          <span class="method-name">columns_for_remove</span><span
            class="method-args">(table_name, *column_names)</span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        

        <div class="method-description">
          
          
          

          
          <div class="method-source-code" id="columns_for_remove-source">
            <pre><span class="ruby-comment"># File /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.7/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 593</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">columns_for_remove</span>(<span class="ruby-identifier">table_name</span>, *<span class="ruby-identifier">column_names</span>)
  <span class="ruby-identifier">column_names</span> = <span class="ruby-identifier">column_names</span>.<span class="ruby-identifier">flatten</span>

  <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-string">&quot;You must specify at least one column name. Example: remove_column(:people, :first_name)&quot;</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">column_names</span>.<span class="ruby-identifier">blank?</span>
  <span class="ruby-identifier">column_names</span>.<span class="ruby-identifier">map</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">column_name</span><span class="ruby-operator">|</span> <span class="ruby-identifier">quote_column_name</span>(<span class="ruby-identifier">column_name</span>) }
<span class="ruby-keyword">end</span></pre>
          </div><!-- columns_for_remove-source -->
          
        </div>

        

        
      </div><!-- columns_for_remove-method -->

    
      <div id="method-i-index_name_for_remove" class="method-detail ">
        
        <div class="method-heading">
          <span class="method-name">index_name_for_remove</span><span
            class="method-args">(table_name, options = {})</span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        

        <div class="method-description">
          
          
          

          
          <div class="method-source-code" id="index_name_for_remove-source">
            <pre><span class="ruby-comment"># File /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.7/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 583</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">index_name_for_remove</span>(<span class="ruby-identifier">table_name</span>, <span class="ruby-identifier">options</span> = {})
  <span class="ruby-identifier">index_name</span> = <span class="ruby-identifier">index_name</span>(<span class="ruby-identifier">table_name</span>, <span class="ruby-identifier">options</span>)

  <span class="ruby-keyword">unless</span> <span class="ruby-identifier">index_name_exists?</span>(<span class="ruby-identifier">table_name</span>, <span class="ruby-identifier">index_name</span>, <span class="ruby-keyword">true</span>)
    <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Index name '#{index_name}' on table '#{table_name}' does not exist&quot;</span>
  <span class="ruby-keyword">end</span>

  <span class="ruby-identifier">index_name</span>
<span class="ruby-keyword">end</span></pre>
          </div><!-- index_name_for_remove-source -->
          
        </div>

        

        
      </div><!-- index_name_for_remove-method -->

    
      <div id="method-i-options_include_default-3F" class="method-detail ">
        
        <div class="method-heading">
          <span class="method-name">options_include_default?</span><span
            class="method-args">(options)</span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        

        <div class="method-description">
          
          
          

          
          <div class="method-source-code" id="options_include_default-3F-source">
            <pre><span class="ruby-comment"># File /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.7/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 557</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">options_include_default?</span>(<span class="ruby-identifier">options</span>)
  <span class="ruby-identifier">options</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-value">:default</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span>(<span class="ruby-identifier">options</span>[<span class="ruby-value">:null</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword">false</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:default</span>].<span class="ruby-identifier">nil?</span>)
<span class="ruby-keyword">end</span></pre>
          </div><!-- options_include_default-3F-source -->
          
        </div>

        

        
      </div><!-- options_include_default-3F-method -->

    
      <div id="method-i-quoted_columns_for_index" class="method-detail ">
        
        <div class="method-heading">
          <span class="method-name">quoted_columns_for_index</span><span
            class="method-args">(column_names, options = {})</span>
          <span class="method-click-advice">click to toggle source</span>
        </div>
        

        <div class="method-description">
          
          <p>Overridden by the mysql adapter for supporting index lengths</p>
          

          
          <div class="method-source-code" id="quoted_columns_for_index-source">
            <pre><span class="ruby-comment"># File /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.7/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 546</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier">quoted_columns_for_index</span>(<span class="ruby-identifier">column_names</span>, <span class="ruby-identifier">options</span> = {})
  <span class="ruby-identifier">option_strings</span> = <span class="ruby-constant">Hash</span>[<span class="ruby-identifier">column_names</span>.<span class="ruby-identifier">map</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">name</span><span class="ruby-operator">|</span> [<span class="ruby-identifier">name</span>, <span class="ruby-string">''</span>]}]

  <span class="ruby-comment"># add index sort order if supported</span>
  <span class="ruby-keyword">if</span> <span class="ruby-identifier">supports_index_sort_order?</span>
    <span class="ruby-identifier">option_strings</span> = <span class="ruby-identifier">add_index_sort_order</span>(<span class="ruby-identifier">option_strings</span>, <span class="ruby-identifier">column_names</span>, <span class="ruby-identifier">options</span>)
  <span class="ruby-keyword">end</span>

  <span class="ruby-identifier">column_names</span>.<span class="ruby-identifier">map</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">name</span><span class="ruby-operator">|</span> <span class="ruby-identifier">quote_column_name</span>(<span class="ruby-identifier">name</span>) <span class="ruby-operator">+</span> <span class="ruby-identifier">option_strings</span>[<span class="ruby-identifier">name</span>]}
<span class="ruby-keyword">end</span></pre>
          </div><!-- quoted_columns_for_index-source -->
          
        </div>

        

        
      </div><!-- quoted_columns_for_index-method -->

    
    </section><!-- protected-instance-method-details -->
  
  </section><!-- 5Buntitled-5D -->

</div><!-- documentation -->


<footer id="validator-badges">
  <p><a href="http://validator.w3.org/check/referer">[Validate]</a>
  <p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 3.12.
  <p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
</footer>

